| # 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.7 |
| |
| 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/moby |
| COPY . /usr/src/moby |