| # 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.26.2 | |
| ARG BASE_DEBIAN_DISTRO="bookworm" | |
| ARG GOLANG_IMAGE="golang:${GO_VERSION}-${BASE_DEBIAN_DISTRO}" | |
| FROM ${GOLANG_IMAGE} | |
| ENV GOTOOLCHAIN=local | |
| # Compile and runtime deps | |
| # https://github.com/moby/moby/blob/master/project/PACKAGERS.md#build-dependencies | |
| # https://github.com/moby/moby/blob/master/project/PACKAGERS.md#runtime-dependencies | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| build-essential \ | |
| curl \ | |
| cmake \ | |
| git \ | |
| libseccomp-dev \ | |
| ca-certificates \ | |
| e2fsprogs \ | |
| iptables \ | |
| pkg-config \ | |
| pigz \ | |
| procps \ | |
| xfsprogs \ | |
| xz-utils \ | |
| \ | |
| vim-common \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Install containerd.io (includes runc), tini, and docker-ce-cli. | |
| # The versions of these dependencies differ from the main Dockerfile, | |
| # but it should be sufficient for minimal build and test purposes. | |
| ADD --chmod=0644 --checksum=sha256:1500c1f56fa9e26b9b8f42452a553675796ade0807cdce11975eb98170b3a570 \ | |
| https://download.docker.com/linux/debian/gpg /etc/apt/keyrings/docker.asc | |
| ARG BASE_DEBIAN_DISTRO | |
| ADD <<-EOT /etc/apt/sources.list.d/docker.sources | |
| Types: deb | |
| URIs: https://download.docker.com/linux/debian | |
| Suites: ${BASE_DEBIAN_DISTRO} | |
| Components: stable | |
| Signed-By: /etc/apt/keyrings/docker.asc | |
| EOT | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| containerd.io \ | |
| tini \ | |
| docker-ce-cli \ | |
| && rm -rf /var/lib/apt/lists/* \ | |
| && ln -s /usr/bin/tini-static /usr/local/bin/docker-init | |
| ENV PATH=/usr/local/cli:$PATH | |
| ENV AUTO_GOPATH 1 | |
| WORKDIR /usr/src/docker | |
| COPY . /usr/src/docker |