| # 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.20.13 | |
| ARG BASE_DEBIAN_DISTRO="bullseye" | |
| ARG GOLANG_IMAGE="golang:${GO_VERSION}-${BASE_DEBIAN_DISTRO}" | |
| FROM ${GOLANG_IMAGE} | |
| ENV GO111MODULE=off | |
| # allow replacing debian mirror | |
| ARG APT_MIRROR | |
| RUN test -n "$APT_MIRROR" && sed -ri "s#(httpredir|deb|security).debian.org#${APT_MIRROR}#g" /etc/apt/sources.list || true | |
| # 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 \ | |
| libdevmapper-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 |