| # docker build -t docker:simple -f Dockerfile.simple . |
| # docker run --rm docker:simple hack/make.sh dynbinary |
| # docker run --rm --privileged docker:simple hack/dind hack/make.sh test-unit |
| # docker run --rm --privileged -v /var/lib/docker docker:simple hack/dind hack/make.sh dynbinary test-integration |
| |
| # This represents the bare minimum required to build and test Docker. |
| |
| ARG GO_VERSION=1.21.9 |
| |
| ARG BASE_DEBIAN_DISTRO="bookworm" |
| ARG GOLANG_IMAGE="golang:${GO_VERSION}-${BASE_DEBIAN_DISTRO}" |
| |
| FROM ${GOLANG_IMAGE} |
| ENV GO111MODULE=off |
| ENV GOTOOLCHAIN=local |
| |
| # Compile and runtime deps |
| # https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies |
| # https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies |
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| build-essential \ |
| curl \ |
| cmake \ |
| git \ |
| libapparmor-dev \ |
| libseccomp-dev \ |
| ca-certificates \ |
| e2fsprogs \ |
| iptables \ |
| pkg-config \ |
| pigz \ |
| procps \ |
| xfsprogs \ |
| xz-utils \ |
| \ |
| vim-common \ |
| && rm -rf /var/lib/apt/lists/* |
| |
| # Install runc, containerd, tini and docker-proxy |
| # Please edit hack/dockerfile/install/<name>.installer to update them. |
| COPY hack/dockerfile/install hack/dockerfile/install |
| RUN for i in runc containerd tini proxy dockercli; \ |
| do hack/dockerfile/install/install.sh $i; \ |
| done |
| ENV PATH=/usr/local/cli:$PATH |
| |
| ENV AUTO_GOPATH 1 |
| WORKDIR /usr/src/docker |
| COPY . /usr/src/docker |