docker-in-docker (1.0.0)
Published 2024-12-20 00:19:43 +00:00 by l
Installation
docker pull git.lio.cat/l/docker-in-docker:1.0.0
sha256:e299a06a74950e1056cea5a76d00893cd2a34eacfe2b65e1144afb736c02499b
Image layers
ADD alpine-minirootfs-3.21.0-x86_64.tar.gz / # buildkit |
CMD ["/bin/sh"] |
RUN /bin/sh -c apk add --no-cache ca-certificates openssh-client git # buildkit |
RUN /bin/sh -c [ -e /etc/nsswitch.conf ] && grep '^hosts: files dns' /etc/nsswitch.conf # buildkit |
RUN /bin/sh -c set -eux; addgroup -g 2375 -S docker # buildkit |
ENV DOCKER_VERSION=27.4.1 |
RUN /bin/sh -c set -eux; apkArch="$(apk --print-arch)"; case "$apkArch" in 'x86_64') url='https://download.docker.com/linux/static/stable/x86_64/docker-27.4.1.tgz'; ;; 'armhf') url='https://download.docker.com/linux/static/stable/armel/docker-27.4.1.tgz'; ;; 'armv7') url='https://download.docker.com/linux/static/stable/armhf/docker-27.4.1.tgz'; ;; 'aarch64') url='https://download.docker.com/linux/static/stable/aarch64/docker-27.4.1.tgz'; ;; *) echo >&2 "error: unsupported 'docker.tgz' architecture ($apkArch)"; exit 1 ;; esac; wget -O 'docker.tgz' "$url"; tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ --no-same-owner 'docker/docker' ; rm docker.tgz; docker --version # buildkit |
ENV DOCKER_BUILDX_VERSION=0.19.3 |
RUN /bin/sh -c set -eux; apkArch="$(apk --print-arch)"; case "$apkArch" in 'x86_64') url='https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-amd64'; sha256='32ed111e941e385c2fb8261eba06a4056915718fd606f8278834ac1931d261a2'; ;; 'armhf') url='https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-arm-v6'; sha256='744352489292ab1439e4b4facfd49f81cbe25e71e205908bd9ec44618759739c'; ;; 'armv7') url='https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-arm-v7'; sha256='5a83e1663b595147ac0225d876fc77e3b441e62dac7a59523ba7003eb6733b8b'; ;; 'aarch64') url='https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-arm64'; sha256='138b587399b27bb61945a36d67866177b85dea1155101a2be63c7ab715f18a2e'; ;; 'ppc64le') url='https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-ppc64le'; sha256='b9eb337b16a75ad45ff846134d34599169bc6dfdb168fb51303fc6b08ed9f31e'; ;; 'riscv64') url='https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-riscv64'; sha256='de8151fe6ced7118f2d680e1d1e7c5cb00496ca0e8b0f8b261450c6636d86978'; ;; 's390x') url='https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-s390x'; sha256='422a9a0250d52dfdd6b78c8152fbf9df41993be4c7add93438c22122ff6c7da8'; ;; *) echo >&2 "warning: unsupported 'docker-buildx' architecture ($apkArch); skipping"; exit 0 ;; esac; wget -O 'docker-buildx' "$url"; echo "$sha256 *"'docker-buildx' | sha256sum -c -; plugin='/usr/local/libexec/docker/cli-plugins/docker-buildx'; mkdir -p "$(dirname "$plugin")"; mv -vT 'docker-buildx' "$plugin"; chmod +x "$plugin"; docker buildx version # buildkit |
ENV DOCKER_COMPOSE_VERSION=2.32.1 |
RUN /bin/sh -c set -eux; apkArch="$(apk --print-arch)"; case "$apkArch" in 'x86_64') url='https://github.com/docker/compose/releases/download/v2.32.1/docker-compose-linux-x86_64'; sha256='ec81c40f138db0ca3aee71c2fffb0075636bea5a02109c75177f66e1b8f568b9'; ;; 'armhf') url='https://github.com/docker/compose/releases/download/v2.32.1/docker-compose-linux-armv6'; sha256='a570825379639804e406c07fe73d052e7909e74c976c3a5cc6cad74a871e405d'; ;; 'armv7') url='https://github.com/docker/compose/releases/download/v2.32.1/docker-compose-linux-armv7'; sha256='bd6a7456eb94e3bb7df31be43f84af9882149abe417f5b7a2635108325e7e604'; ;; 'aarch64') url='https://github.com/docker/compose/releases/download/v2.32.1/docker-compose-linux-aarch64'; sha256='7aa6406406be13c075e92cfbf322470318a9ad7a58c93a9fb3a215dc14aed8bd'; ;; 'ppc64le') url='https://github.com/docker/compose/releases/download/v2.32.1/docker-compose-linux-ppc64le'; sha256='4e56b1e8f5d5e68ce66d5a156a96597b1d7534a94dd2d846d288797008e044eb'; ;; 'riscv64') url='https://github.com/docker/compose/releases/download/v2.32.1/docker-compose-linux-riscv64'; sha256='686bba58b9c2cad3edc4045dadb36ed2e2d4b0b72ada8eed832b6a9561fdb50d'; ;; 's390x') url='https://github.com/docker/compose/releases/download/v2.32.1/docker-compose-linux-s390x'; sha256='a40fdae1e4a3b90186bc06712b0b19079877bf408f39b3425bf65048e19bd8aa'; ;; *) echo >&2 "warning: unsupported 'docker-compose' architecture ($apkArch); skipping"; exit 0 ;; esac; wget -O 'docker-compose' "$url"; echo "$sha256 *"'docker-compose' | sha256sum -c -; plugin='/usr/local/libexec/docker/cli-plugins/docker-compose'; mkdir -p "$(dirname "$plugin")"; mv -vT 'docker-compose' "$plugin"; chmod +x "$plugin"; ln -sv "$plugin" /usr/local/bin/; docker-compose --version; docker compose version # buildkit |
COPY modprobe.sh /usr/local/bin/modprobe # buildkit |
COPY docker-entrypoint.sh /usr/local/bin/ # buildkit |
ENV DOCKER_TLS_CERTDIR=/certs |
RUN /bin/sh -c mkdir /certs /certs/client && chmod 1777 /certs /certs/client # buildkit |
ENTRYPOINT ["docker-entrypoint.sh"] |
CMD ["sh"] |
RUN /bin/sh -c set -eux; apk add --no-cache btrfs-progs e2fsprogs e2fsprogs-extra git ip6tables iptables openssl pigz shadow-uidmap xfsprogs xz zfs ; # buildkit |
RUN /bin/sh -c set -eux; apk add --no-cache iptables-legacy; mkdir -p /usr/local/sbin/.iptables-legacy; for f in iptables iptables-save iptables-restore ip6tables ip6tables-save ip6tables-restore ; do b="$(command -v "${f/tables/tables-legacy}")"; "$b" --version; ln -svT "$b" "/usr/local/sbin/.iptables-legacy/$f"; done; export PATH="/usr/local/sbin/.iptables-legacy:$PATH"; iptables --version | grep legacy # buildkit |
RUN /bin/sh -c set -eux; addgroup -S dockremap; adduser -S -G dockremap dockremap; echo 'dockremap:165536:65536' >> /etc/subuid; echo 'dockremap:165536:65536' >> /etc/subgid # buildkit |
RUN /bin/sh -c set -eux; apkArch="$(apk --print-arch)"; case "$apkArch" in 'x86_64') url='https://download.docker.com/linux/static/stable/x86_64/docker-27.4.1.tgz'; ;; 'armhf') url='https://download.docker.com/linux/static/stable/armel/docker-27.4.1.tgz'; ;; 'armv7') url='https://download.docker.com/linux/static/stable/armhf/docker-27.4.1.tgz'; ;; 'aarch64') url='https://download.docker.com/linux/static/stable/aarch64/docker-27.4.1.tgz'; ;; *) echo >&2 "error: unsupported 'docker.tgz' architecture ($apkArch)"; exit 1 ;; esac; wget -O 'docker.tgz' "$url"; tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ --no-same-owner --exclude 'docker/docker' ; rm docker.tgz; dockerd --version; containerd --version; ctr --version; runc --version # buildkit |
ENV DIND_COMMIT=65cfcc28ab37cb75e1560e4b4738719c07c6618e |
RUN /bin/sh -c set -eux; wget -O /usr/local/bin/dind "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind"; chmod +x /usr/local/bin/dind # buildkit |
COPY dockerd-entrypoint.sh /usr/local/bin/ # buildkit |
VOLUME [/var/lib/docker] |
EXPOSE map[2375/tcp:{} 2376/tcp:{}] |
ENTRYPOINT ["dockerd-entrypoint.sh"] |
CMD [] |
RUN /bin/sh -c apk add bash # buildkit |