base-devel and multilib-devel should extend from base
Currently, we provide a rootfs tar file for every image group: base
, base-devel
and multilib-devel
. This was done under the assumption that all tags of official DockerHub Library Images need to be reproducible. According to a comment of a docker-library maintainer this isn't the case (only the base image needs to be reproducible), and they decline any current merges due to the size of the weekly tags.
To reduce the load on the official library and end-users only base
should be built with a rootfs tar file, all other image groups should extend from that (FROM archlinux:base
).
To implement this, we need to adjust the process as follows (simplified):
- Build and release only one rootfs artifact,
base.tar.zst
- Replace
Dockerfile.base-devel
andDockerfile.multilib-devel
in the releases Branch with the following:Dockerfile.gitlab.base-devel
Dockerfile.gitlab.multilib-devel
Dockerfile.dockerhub.base-devel
Dockerfile.dockerhub.multilib-devel
Dockerfile.dockerhub-official.base-devel
Dockerfile.dockerhub-official.multilib-devel
Dockerfile.quay.base-devel
Dockerfile.quay.multilib-devel
Dockerfile.ghcr.base-devel
Dockerfile.ghcr.multilib-devel
- Adjust the official-dockerhub template Dockerfile paths
- Build the various
base-devel
andmultilib-devel
images for gitlab, dockerhub, quay and ghcr (this should benefit from the build cache)
We need two Dockerfiles for every registry, since the FROM
line differs (FROM quay.io/archlinux/archlinux:base-20231231.0.203775
). They can be created from the following templates:
FROM TEMPLATE_BASE_IMAGE
# Labels included in base are inherited, only the title changes
LABEL org.opencontainers.image.title="TEMPLATE_TITLE"
RUN pacman -Syu --noconfirm base-devel
FROM TEMPLATE_BASE_IMAGE
# Labels included in base are inherited, only the title changes
LABEL org.opencontainers.image.title="TEMPLATE_TITLE"
RUN <<EOR
echo "
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
" >> /etc/pacman.conf
EOR
RUN pacman -Syu --noconfirm multilib-devel