Skip to content

registry: allow "allow-nondistributable-artifacts" for Docker Hub#44305

Merged
tianon merged 1 commit into
moby:masterfrom
thaJeztah:distributable
Oct 17, 2022
Merged

registry: allow "allow-nondistributable-artifacts" for Docker Hub#44305
tianon merged 1 commit into
moby:masterfrom
thaJeztah:distributable

Conversation

@thaJeztah

Copy link
Copy Markdown
Member

Previously, Docker Hub was excluded when configuring "allow-nondistributable-artifacts". With the updated policy announced by Microsoft, we can remove this restriction; https://techcommunity.microsoft.com/t5/containers/announcing-windows-container-base-image-redistribution-rights/ba-p/3645201

There are plans to deprecated support for foreign layers altogether in the OCI (opencontainers/image-spec#965), and we should consider to make this option the default, but as that requires deprecating the option (and possibly keeping an "opt-out" option), we can look at that separately.

- Description for the changelog

- A picture of a cute animal (not mandatory but encouraged)

Previously, Docker Hub was excluded when configuring "allow-nondistributable-artifacts".
With the updated policy announced by Microsoft, we can remove this restriction;
https://techcommunity.microsoft.com/t5/containers/announcing-windows-container-base-image-redistribution-rights/ba-p/3645201

There are plans to deprecated support for foreign layers altogether in the OCI,
and we should consider to make this option the default, but as that requires
deprecating the option (and possibly keeping an "opt-out" option), we can look
at that separately.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
@thaJeztah

Copy link
Copy Markdown
Member Author

@tianon I think this should fix the issue you ran into, but if you're able to give this a spin, that'd be good 👍

@tianon tianon left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is basically exactly the patch I would've written if I'd gotten around to touching this before you did! 😂

Now it works as expected with just docker.io in my "allow" list:

$ docker push tianon/cygwin:winltsc2022
The push refers to repository [docker.io/tianon/cygwin]
42bd4d5a4611: Pushed 
e04accb6d4bb: Pushing [==================================================>]  112.9MB
a0239d1e5549: Pushed 
ab963872d72e: Pushed 
19c55f7b96c5: Pushed 
7a006876f250: Pushed 
748895839027: Pushed 
0a3439d6a7ff: Pushed 
45021020df51: Pushed 
7a72bd51b9c8: Pushing [======>                                            ]  269.4MB/2.128GB
b9bda40f596a: Pushing [===>                                               ]  229.4MB/3.129GB

@tianon

tianon commented Oct 17, 2022

Copy link
Copy Markdown
Member

(Now I get to backport this to 20.10 and generate a new build off it 😭)

@tianon

tianon commented Oct 17, 2022

Copy link
Copy Markdown
Member

Fun quirk that all the Windows layers seem to keep pushing beyond 100% 🙈

@tianon

tianon commented Oct 17, 2022

Copy link
Copy Markdown
Member

Confirmed works, though:

$ docker run --rm gcr.io/go-containerregistry/crane manifest tianon/cygwin@sha256:72c18cb6a1327113bb458e3369317cec8a19306960610ef07e48d44d2b647d20
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
   "config": {
      "mediaType": "application/vnd.docker.container.image.v1+json",
      "size": 6404,
      "digest": "sha256:f8c72a3c15a5dc85bf5dab755297ef57f890e509d7b6300aaa7152316aa7b6a2"
   },
   "layers": [
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 1473997635,
         "digest": "sha256:a4aee932fccc1ec8135f290aca03a7c93dcc2536fc84723813ef9b95f6fd13ea"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 1000028645,
         "digest": "sha256:08e9b54b31e104f64c9eb8a65ac0af5effd645bd00a77ea297b6015d28022a74"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 1303,
         "digest": "sha256:a21151a1d85190d76fb25f1dfaa118c32d255a44301ff93d2ec7b6d18c4e5599"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 1477,
         "digest": "sha256:ee696b20e7f8850233d8ed508a7bc52e80ca82735297cff75bdedfa3ccd978bb"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 617643,
         "digest": "sha256:35434966eebb4c4a6f8550f2ac4d8b0769d1f8a2e14c5a1646df6e6a4485ffe4"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 1295,
         "digest": "sha256:3b49cfb14b610728d635abb8240c481b3b1f2071a7d31e66466a18d40a17ccfe"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 1297,
         "digest": "sha256:5a0f14182b7fd9357fbe0e65ca13a1c179316880cb0bcd618208bbec30e18015"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 1295,
         "digest": "sha256:ff641359ad4b444b1372804150da1a71251a8c56aa13ee8a85a0bb12356e4a55"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 1881849,
         "digest": "sha256:1a9240f2ab4310a06664ef7394f0544172c719fdb45cd90f1ed1ae5b173f9708"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 38069445,
         "digest": "sha256:38ec14d09a982fc05c419672bbb8ada5d152644db08324a9cd19fdde0f5e0f8d"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 1298,
         "digest": "sha256:0004ad694c1af3803eaa53c56b85ce03b584f9c37d5315aac86337ece7bc470e"
      }
   ]
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants