Greetings fellow Swifters,

Currently there is an unofficial Docker image for Swift supported by the SwiftDocker (docker-swift) project. The Core Team would like to integrate support for an official Docker image directly into the Swift project to create concentrated and official support for Docker images that the Swift community can rely upon. Thomas Catterall and I have volunteered to help coordinate this effort with broader Swift community.

The specific goals going forward are:

Transfer Docker’s recognition of the official Swift docker image to come from the Swift.org project instead of docker-swift.

Create Docker images that support the Linux distributions officially supported by Swift, as well as expand that set of supported distributions over time.

Provide more variants of Docker images to support different user and developer workflows.

The following is a tentative phase plan for this effort:

Phase 1: Host the Dockerfiles for the "official" images in the Apple organization

Phase 2: Add support in the Swift CI for regularly building and testing the Docker images. This enables us to do continuous testing that the images are valid.

Phase 3: Expand support to all supported distributions and versions. This ensures that we have support for Ubuntu 14.04, 16.04 and 18.04 when support arrives.

Phase 4: Verify contents of Docker image ensuring that the contents of the build image meets the majority of server use cases such as SwiftNIO, Kitura, Vapor and Perfect applications building out-of-the-box.

Phase 5: Provide support for separate Build/Debug and "Slim" Runtime images. The "Slim" image would contain the minimum required to run (but not build) and application. A multi-stage Dockerfile can then we used to build inside the Build/Debug image and copy into the "Slim" runtime image

Phase 6: Add support for multi-arch Docker images As additional architectures are officially supported through the community Swift CI, we can look at moving to multi-arch Docker images that add in support for those platforms.

To support this effort, a new “Docker” category to the forums will be added under “Development > Server” as well as a new category in JIRA.

Thomas, myself, and the Core Team would like to also thank everyone who contributed to docker-swift, and we welcome the entire community to participate in the development of these new images.

We're excited to see how the new, official Docker images will benefit Swift on Server!

We are very excited about this effort and hopefully so are you!

Haris