Why are docker images split between two orgs?

As the title suggests, is there a rational for why the swift docker images are split between swift and swiftlang/swift?

The difference makes writing docker files, actions, etc feel unnecessarily complicated.

e.g.

  • image: swift:5.8-jammy
  • image: swift:5.9-jammy
  • image: swift:5.10-jammy
  • image: swiftlang/swift:nightly-6.0-jammy
  • image: swiftlang/swift:nightly-main-jammy
6 Likes

Those under swift are 'official' Docker images and the process for updating those images are contrived, it has to go through the Docker Project CI, and there's a delay in updates being requested and them getting published (multiple days).

The swiftlang org gives Swift much more flexibility and control over how images are published and I don't think nightlies would be possible in the official images. Many other images use the same approach, e.g. https://hub.docker.com/r/nginx/nginx-ingress/tags

Not using the official images is not an option for obvious reasons

3 Likes

I see rust does the same thing with rustlang/rust.

I actually dont know if I follow the obvious reasons, could we mirror the official images under swiftlang/swift?

1 Like

There's no reason why we couldn't mirror the official images I guess.

In terms of not using the official repository for Swift release images - it would not be a good look for Swift. Having a Swift image in the official list provides some semblance of it being a 'real' language

Sure that makes total sense, but for project developing against highly and release versions of swift it's a pain to manage different orgs*.

*I dont know if this is the right term in docker parlance

1 Like

This seems like a good thread to bring up my favorite pet peeve with the docker images:

❯ docker run --platform linux/amd64 swiftlang/swift:nightly-main swift --version
Swift version 5.8-dev (LLVM b2416e1165ab97c, Swift 965a54f037cfa76)
Target: x86_64-unknown-linux-gnu

Would be nice if this one could be moved/removed so that it becomes more obvious that swiftlang/swift:nightly-main-jammy is the real main image.

3 Likes

@0xTim who owns this scheme/who need to be convinced to add the aliases I suggested above & fix the bug Boris mentioned?

I think that's one for @mishal_shah when he's back from holiday

It does feel like this should be managed by a swift infrastructure work group instead of putting it all on one person...

6 Likes

I don't see an issue with mirroring it on swiftlang, can you file a GitHub issue on GitHub - swiftlang/swift-docker: Docker Official Image packaging for Swift?

1 Like

+1 on Infrastructure and Release workgroup.

6 Likes
$ docker run --platform linux/amd64 swiftlang/swift:nightly-main swift --version
Swift version 6.0-dev (LLVM 6c1a2ac10cabb71, Swift ec995d0e46aa0e8)
Target: x86_64-unknown-linux-gnu

This should be fixed now

5 Likes