43 lines
1.5 KiB
Docker
43 lines
1.5 KiB
Docker
# This generates the default base image.
|
|
|
|
# This is a local reference by default because we haven't shipped this image yet.
|
|
FROM localhost/fedora-bootc:base
|
|
# Drop our package sets into /usr/share/doc, so that other things can parse it
|
|
COPY packages*.txt /usr/share/doc/fedora-bootc/
|
|
# Overlay our defaults
|
|
COPY usr/ /usr/
|
|
RUN <<EORUN
|
|
set -euo pipefail
|
|
dnf_args=()
|
|
echo "Loading packages-excluded"
|
|
basedir=/usr/share/doc/fedora-bootc/
|
|
for x in $(grep -E -v '^#' ${basedir}/packages-excluded.txt); do
|
|
dnf_args+=(--exclude ${x})
|
|
done
|
|
echo "Loading packages"
|
|
package_files=(${basedir}/packages-recommended-minimal.txt ${basedir}/packages.txt)
|
|
pkgfile_for_arch=/usr/share/doc/fedora-bootc/packages-$(arch).txt
|
|
if test -f ${pkgfile_for_arch}; then
|
|
echo "Loading ${pkgfile_for_arch}"
|
|
package_files+=(${pkgfile_for_arch})
|
|
fi
|
|
base_pkgs=$(grep -hE -v '^#' ${package_files[@]})
|
|
dnf -y ${dnf_args[@]} install $base_pkgs
|
|
|
|
# Ensure we regenerate the initramfs with new content
|
|
# https://docs.fedoraproject.org/en-US/bootc/initramfs/
|
|
kver=$(cd /usr/lib/modules && echo *); dracut -vf /usr/lib/modules/$kver/initramfs.img $kver
|
|
|
|
# Undo RPM scripts enabling units; we want the presets to be canonical for the base image.
|
|
# https://github.com/projectatomic/rpm-ostree/issues/1803
|
|
rm -rf /etc/systemd/system/*
|
|
systemctl preset-all
|
|
rm -rf /etc/systemd/user/*
|
|
systemctl --user --global preset-all
|
|
|
|
dnf clean all
|
|
# Lots of cleaning
|
|
rm -vrf /var/log /var/cache /var/lib/dnf
|
|
bootc container lint
|
|
EORUN
|