/swift-docker

Docker Official Image packaging for Swift

Primary LanguageDockerfileApache License 2.0Apache-2.0

swift-docker

Swift logo

Docker images for Swift.

You can find the Docker Hub repo here: https://hub.docker.com/_/swift/

Nightly image tags are published here: https://hub.docker.com/r/swiftlang/swift

Usage

Pull the Docker image from Docker Hub:
docker pull swift
Create a container from the image and run it:
docker run -it swift /bin/bash

If you want to run the Swift REPL you will need to run the container with additional privileges:

# If running Docker on Linux:
docker run --security-opt seccomp=unconfined -it swift

# If running Docker on macOS:
docker run --privileged -it swift

We also provide a "slim" image. Slim images are images designed just for running an already built Swift program. Consequently, they do not contain the Swift compiler.

The normal and slim images can be combined via a multi-stage Dockerfile to produce a lighter-weight image ready for deployment. For example:

FROM swift:latest as builder
WORKDIR /root
COPY . .
RUN swift build -c release

FROM swift:slim
WORKDIR /root
COPY --from=builder /root .
CMD [".build/release/docker-test"]

Contributing

Welcome to the Swift community!

Contributions to swift-docker are welcomed and encouraged! Please see the Contributing to Swift guide and check out the structure of the community.

To be a truly great community, Swift needs to welcome developers from all walks of life, with different backgrounds, and with a wide range of experience. A diverse and friendly community will have more great ideas, more unique perspectives, and produce more great code. We will work diligently to make the Swift community welcoming to everyone.

To give clarity of what is expected of our members, Swift has adopted the code of conduct defined by the Contributor Covenant. This document is used across many open source communities, and we think it articulates our values well. For more, see the Code of Conduct.

License

swift-docker is licensed under the Apache License, Version 2.0.