quine-linux/installer/Containerfile
Philip Peterson 39de966517 Install patched anaconda-webui from the forge's RPM registry, not COPR
The fork (quine/quine-anaconda-webui on forge.quinefoundation.com) now
builds its RPM with Forgejo Actions and publishes it to the quine org's
package registry. The installer image adds that repo with priority=10 so
it wins over Fedora's anaconda-webui, verifies Forgejo's signed repo
metadata (the RPMs themselves are unsigned), and the Taskfile passes the
repo metadata checksum as a build arg so a newly published RPM busts the
cached dnf layer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 04:55:42 -08:00

50 lines
2.2 KiB
Docker

# Installer-environment container for bootc-image-builder's `bootc-installer`
# image type. This is NOT the quine-linux OS -- it's the throwaway Anaconda
# environment the ISO boots into, which then installs the real quine-linux
# bootc image (passed separately via --bootc-installer-payload-ref). See
# docs/patched-anaconda-installer.md for the full workflow this fits into.
FROM quay.io/fedora/fedora-bootc:rawhide
# URL of a dnf .repo file for the repository holding a build of the patched
# anaconda-webui fork -- by default the Forgejo RPM registry its CI publishes
# to (see docs/patched-anaconda-installer.md). Override at build time with
# --build-arg RPM_REPO_URL=...; empty means stock Fedora anaconda-webui.
ARG RPM_REPO_URL
# Set by the Taskfile to the repo metadata's checksum; only here so a newly
# published RPM invalidates the build cache for the layer below.
ARG RPM_REPO_REV
# priority=10 (default 99) makes dnf take anaconda-webui from that repo even
# when Fedora's own build is newer. Forgejo signs the repo metadata but not
# the RPMs themselves, so verify the signed metadata (which carries each
# package's checksum) instead of per-package signatures.
RUN set -eux; \
echo "anaconda-webui repo rev: ${RPM_REPO_REV:-none}"; \
if [ -n "${RPM_REPO_URL}" ]; then \
curl -fsSL "${RPM_REPO_URL}" -o /etc/yum.repos.d/quine-anaconda.repo; \
sed -i 's/^gpgcheck=.*/gpgcheck=0/' /etc/yum.repos.d/quine-anaconda.repo; \
printf '\nrepo_gpgcheck=1\npriority=10\n' >> /etc/yum.repos.d/quine-anaconda.repo; \
fi; \
dnf install -y \
anaconda-webui \
anaconda \
anaconda-install-env-deps \
anaconda-dracut \
dracut-config-generic \
dracut-network \
net-tools \
squashfs-tools \
grub2-efi-x64-cdboot \
python3-mako \
lorax-templates-generic \
biosdevname \
prefixdevname; \
dnf clean all
# Fedora 43+ path fixup -- image-builder expects the EFI directory under
# /boot/efi, not wherever the fedora-bootc base puts it.
RUN mkdir -p /boot/efi && cp -ra /usr/lib/efi/*/*/EFI /boot/efi
# lorax wants to symlink /mnt -> /var/mnt, which doesn't exist on this base.
RUN mkdir -p /var/mnt