# 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.7 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/.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