99f10f9380
Somewhere between the upstream container rockylinux/rockylinux:8.6.20220515 and the latest release, systemd started to be pre-installed in the container. With <= 20220515 installing the kernel-core package would end up pulling in systemd. As part of the systemd package installation, the /etc/machine-id file is created and populated. The kernel package post-install steps install the kernel with /bin/kernel-install; this is responsible for copying the kernel binaries into /boot. It does this based on the machine-id, and it seems its failure case with a blank machine-id is to simply skip copying the kernels into /boot. To compound this problem, it seems our bootloader installation doesn't notice that we don't have a kernel installed, so we end up building an unbootable image. Testing is/was showing us this; but as rocky is non-voting and this occured at a random time (rather than in response to a dib change) I think it slipped by us. To work around this, create the machine-id early in the container. We already have paths that remove the machine-id from final images. Change-Id: I07e8262102d4e76c861667a98ded9fc3f4f4b82d
13 lines
454 B
Plaintext
13 lines
454 B
Plaintext
FROM docker.io/library/rockylinux:8
|
|
|
|
RUN dnf install -y findutils util-linux sudo python3 NetworkManager
|
|
|
|
RUN systemctl unmask console-getty.service dev-hugepages.mount \
|
|
getty.target sys-fs-fuse-connections.mount systemd-logind.service \
|
|
systemd-remount-fs.service
|
|
|
|
# /etc/machine-id needs to be populated for /bin/kernel-install to
|
|
# correctly copy kernels into /boot. We will clear this out in the
|
|
# final image.
|
|
RUN systemd-machine-id-setup
|