1 FROM docker.io/gentoo/portage:latest as portage
3 # uefi stub in a separate builder
4 FROM docker.io/gentoo/stage3 as efistub
5 COPY --from=portage /var/db/repos/gentoo /var/db/repos/gentoo
8 RUN mkdir -p /etc/portage/package.accept_keywords && \
9 echo "sys-boot/systemd-boot" >> /etc/portage/package.accept_keywords/systemd-boot && \
10 echo '>=sys-apps/systemd-utils-251.10 boot' > /etc/portage/package.use/systemd-boot && \
11 emerge -qv sys-boot/systemd-boot
13 # kernel and its dependencies in a separate builder
14 FROM docker.io/gentoo/stage3:musl as kernel
15 COPY --from=portage /var/db/repos/gentoo /var/db/repos/gentoo
16 # disable initramfs generation, only need the kernel image itself
17 RUN echo 'sys-kernel/gentoo-kernel-bin -initramfs' > /etc/portage/package.use/kernel
18 RUN emerge -qv sys-kernel/gentoo-kernel-bin
20 FROM docker.io/gentoo/stage3:musl
21 COPY --from=portage /var/db/repos/gentoo /var/db/repos/gentoo
22 COPY --from=kernel /boot /boot
23 COPY --from=kernel /lib/modules /lib/modules
24 COPY --from=efistub /usr/lib/systemd/boot/efi /usr/lib/systemd/boot/efi
26 MAINTAINER https://github.com/dracutdevs/dracut
28 # Only install `dmsetup`: attempting to install all of lvm2 fails due to missing kernel headers.
29 RUN echo 'sys-fs/lvm2 device-mapper-only -thin' > /etc/portage/package.use/lvm2
31 # workaround for https://bugs.gentoo.org/734022 whereby Gentoo does not support NFS4 with musl
32 RUN echo 'net-fs/nfs-utils -nfsv4' > /etc/portage/package.use/nfs-utils
34 RUN echo '>=sys-fs/lvm2-2.03.17-r1 lvm' > /etc/portage/package.use/dmraid
36 # Install needed packages for the dracut CI container
45 sys-block/open-iscsi \
47 sys-block/thin-provisioning-tools \
53 sys-fs/multipath-tools \
55 sys-fs/squashfs-tools \
56 && rm -rf /var/cache/* /usr/share/doc/* /usr/share/man/*