Files
moby/Dockerfile.simple
T
Sebastiaan van Stijn a648622117 Dockerfile update to debian 13 "trixie"
Update our Dockerfile to use debian 13 as base. Some notes about architectures
from the [announcement][1];

> This release for the first time officially supports the riscv64 architecture,
> allowing users to run Debian on 64-bit RISC-V hardware and benefit from all
> Debian 13 features. A total of seven architectures are officially supported
> for trixie:
>
> - 64-bit PC (amd64),
> - 64-bit ARM (arm64),
> - ARM EABI (armel),
> - ARMv7 (EABI hard-float ABI, armhf),
> - 64-bit little-endian PowerPC (ppc64el),
> - 64-bit little-endian RISC-V (riscv64),
> - IBM System z (s390x)
>
> i386 is no longer supported as a regular architecture: there is no official
> kernel and no Debian installer for i386 systems. The i386 architecture is
> now only intended to be used on a 64-bit (amd64) CPU. Users running i386
> systems should not upgrade to trixie. Instead, Debian recommends either
> reinstalling them as amd64, where possible, or retiring the hardware.
>
> trixie will be the last release for the armel architecture. See
> [5.1.3. Last release for armel][2] in the release notes for more information
> on our ARM EABI support.

Also install e2fsprogs to fix missing mkfs.ext4

[1]: https://www.debian.org/News/2025/20250809
[2]: https://www.debian.org/releases/trixie/release-notes/issues.html#last-release-for-armel

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-09-14 21:55:43 +02:00

62 lines
1.9 KiB
Docker

# 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.8
ARG BASE_DEBIAN_DISTRO=trixie
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