{"action":"created","issue":{"url":"https://api.github.com/repos/moby/moby/issues/34319","repository_url":"https://api.github.com/repos/moby/moby","labels_url":"https://api.github.com/repos/moby/moby/issues/34319/labels{/name}","comments_url":"https://api.github.com/repos/moby/moby/issues/34319/comments","events_url":"https://api.github.com/repos/moby/moby/issues/34319/events","html_url":"https://github.com/moby/moby/pull/34319","id":246686592,"node_id":"MDExOlB1bGxSZXF1ZXN0MTMzMTk0MTQ0","number":34319,"title":"Implement private registry mirror support","user":{"login":"vrothberg","id":11679875,"node_id":"MDQ6VXNlcjExNjc5ODc1","avatar_url":"https://avatars1.githubusercontent.com/u/11679875?v=4","gravatar_id":"","url":"https://api.github.com/users/vrothberg","html_url":"https://github.com/vrothberg","followers_url":"https://api.github.com/users/vrothberg/followers","following_url":"https://api.github.com/users/vrothberg/following{/other_user}","gists_url":"https://api.github.com/users/vrothberg/gists{/gist_id}","starred_url":"https://api.github.com/users/vrothberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vrothberg/subscriptions","organizations_url":"https://api.github.com/users/vrothberg/orgs","repos_url":"https://api.github.com/users/vrothberg/repos","events_url":"https://api.github.com/users/vrothberg/events{/privacy}","received_events_url":"https://api.github.com/users/vrothberg/received_events","type":"User","site_admin":false},"labels":[{"id":175375318,"node_id":"MDU6TGFiZWwxNzUzNzUzMTg=","url":"https://api.github.com/repos/moby/moby/labels/status/1-design-review","name":"status/1-design-review","color":"fef2c0","default":false}],"state":"open","locked":false,"assignee":{"login":"stevvooe","id":120601,"node_id":"MDQ6VXNlcjEyMDYwMQ==","avatar_url":"https://avatars1.githubusercontent.com/u/120601?v=4","gravatar_id":"","url":"https://api.github.com/users/stevvooe","html_url":"https://github.com/stevvooe","followers_url":"https://api.github.com/users/stevvooe/followers","following_url":"https://api.github.com/users/stevvooe/following{/other_user}","gists_url":"https://api.github.com/users/stevvooe/gists{/gist_id}","starred_url":"https://api.github.com/users/stevvooe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevvooe/subscriptions","organizations_url":"https://api.github.com/users/stevvooe/orgs","repos_url":"https://api.github.com/users/stevvooe/repos","events_url":"https://api.github.com/users/stevvooe/events{/privacy}","received_events_url":"https://api.github.com/users/stevvooe/received_events","type":"User","site_admin":false},"assignees":[{"login":"stevvooe","id":120601,"node_id":"MDQ6VXNlcjEyMDYwMQ==","avatar_url":"https://avatars1.githubusercontent.com/u/120601?v=4","gravatar_id":"","url":"https://api.github.com/users/stevvooe","html_url":"https://github.com/stevvooe","followers_url":"https://api.github.com/users/stevvooe/followers","following_url":"https://api.github.com/users/stevvooe/following{/other_user}","gists_url":"https://api.github.com/users/stevvooe/gists{/gist_id}","starred_url":"https://api.github.com/users/stevvooe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevvooe/subscriptions","organizations_url":"https://api.github.com/users/stevvooe/orgs","repos_url":"https://api.github.com/users/stevvooe/repos","events_url":"https://api.github.com/users/stevvooe/events{/privacy}","received_events_url":"https://api.github.com/users/stevvooe/received_events","type":"User","site_admin":false}],"milestone":null,"comments":87,"created_at":"2017-07-31T08:51:34Z","updated_at":"2018-12-21T18:41:12Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/moby/moby/pulls/34319","html_url":"https://github.com/moby/moby/pull/34319","diff_url":"https://github.com/moby/moby/pull/34319.diff","patch_url":"https://github.com/moby/moby/pull/34319.patch"},"body":"Add private-registry mirror support\r\n\r\nAdd support for mirroring private registries.  The daemon.json config\r\ncan now be configured as exemplified below:\r\n\r\n```json\r\n{\r\n\"registries\": [\r\n        {\r\n\t\"Prefix\": \"docker.io/alpine\",\r\n\t\"Mirrors\": [\r\n\t\t{\r\n\t\t\t\"URL\": \"http://local-alpine-mirror.lan\",\r\n\t\t}\r\n\t]\r\n        },\r\n        {\r\n        \"Prefix\": \"registry.suse.com\",\r\n        \"Mirrors\": [\r\n                {\r\n                        \"URL\": \"https://remote.suse.mirror.com\"\r\n                }\r\n        ]\r\n        },\r\n        {\r\n        \"Prefix\": \"http://insecure.registry.org:5000\"\r\n        }\r\n],\r\n\"registry-mirrors\": [\"https://deprecated-mirror.com\"]\r\n}\r\n```\r\n\r\nWith the new semantics, a mirror will be selected as an endpoint if the\r\nspecified prefix matches the prefix of the requested resource (e.g., an\r\nimage reference).  In the upper example, \"local-alpine-mirror\" will only\r\nserve as a mirror for docker.io if the requested resource matches the\r\n\"alpine\" prefix, such as \"alpine:latest\" or \"alpine-foo/bar\".\r\n\r\nFurthermore, private registries can now be mirrored as well.  In the\r\nexample above, \"remote.suse.mirror.com\" will serve as a mirror for all\r\nrequests to \"registry.suse.com\".  Notice that if no http{s,} scheme is\r\nspecified, the URI will always default to https without fallback to\r\nhttp.  An insecure registry can now be specified by adding the \"http://\"\r\nscheme to the corresponding prefix.\r\n\r\nNote that the configuration is sanity checked, so that a given mirror\r\ncan serve multiple prefixes if they all point to the same registry,\r\nwhile a registry cannot simultaneously serve as a mirror.  The daemon\r\nwill warn in case the URI schemes of a registry and one of its mirrors\r\ndo not correspond.\r\n\r\nThis change deprecates the \"insecure-regestries\" and \"registry-mirrors\"\r\noptions, while the \"insecure-registries\" cannot be used simultaneously\r\nwith the new \"registries\", which doesn't allow a fallback from https to\r\nhttp for security reasons.\r\n\r\nSigned-off-by: Flavio Castelli <fcastelli@suse.com>\r\nSigned-off-by: Valentin Rothberg <vrothberg@suse.com>"},"comment":{"url":"https://api.github.com/repos/moby/moby/issues/comments/449466619","html_url":"https://github.com/moby/moby/pull/34319#issuecomment-449466619","issue_url":"https://api.github.com/repos/moby/moby/issues/34319","id":449466619,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0OTQ2NjYxOQ==","user":{"login":"olljanat","id":6213926,"node_id":"MDQ6VXNlcjYyMTM5MjY=","avatar_url":"https://avatars1.githubusercontent.com/u/6213926?v=4","gravatar_id":"","url":"https://api.github.com/users/olljanat","html_url":"https://github.com/olljanat","followers_url":"https://api.github.com/users/olljanat/followers","following_url":"https://api.github.com/users/olljanat/following{/other_user}","gists_url":"https://api.github.com/users/olljanat/gists{/gist_id}","starred_url":"https://api.github.com/users/olljanat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olljanat/subscriptions","organizations_url":"https://api.github.com/users/olljanat/orgs","repos_url":"https://api.github.com/users/olljanat/repos","events_url":"https://api.github.com/users/olljanat/events{/privacy}","received_events_url":"https://api.github.com/users/olljanat/received_events","type":"User","site_admin":false},"created_at":"2018-12-21T18:41:12Z","updated_at":"2018-12-21T18:41:12Z","author_association":"CONTRIBUTOR","body":"@vrothberg this one needs to be rebased"}}
{"actor":{"display_login":"olljanat"}}