diff options
Diffstat (limited to 'test/container')
-rw-r--r-- | test/container/Dockerfile-Arch | 63 | ||||
-rw-r--r-- | test/container/Dockerfile-Debian | 15 | ||||
-rw-r--r-- | test/container/Dockerfile-Fedora-latest | 12 | ||||
-rw-r--r-- | test/container/Dockerfile-Gentoo | 66 | ||||
-rw-r--r-- | test/container/Dockerfile-OpenSuse-latest | 57 | ||||
-rw-r--r-- | test/container/Dockerfile-Ubuntu | 12 | ||||
-rw-r--r-- | test/container/Dockerfile-Void | 64 | ||||
-rw-r--r-- | test/container/Dockerfile-alpine | 62 |
8 files changed, 278 insertions, 73 deletions
diff --git a/test/container/Dockerfile-Arch b/test/container/Dockerfile-Arch index f05ce8f..2af810a 100644 --- a/test/container/Dockerfile-Arch +++ b/test/container/Dockerfile-Arch @@ -1,17 +1,52 @@ FROM docker.io/archlinux -MAINTAINER https://github.com/dracutdevs/dracut - -# Install needed packages for the dracut CI container RUN pacman --noconfirm -Syu \ - linux dash strace dhclient asciidoc cpio pigz squashfs-tools \ - qemu btrfs-progs mdadm dmraid nfs-utils nfsidmap lvm2 nbd \ - dhcp networkmanager multipath-tools vi tcpdump open-iscsi connman \ - git shfmt shellcheck astyle which base-devel glibc parted ntfs-3g && yes | pacman -Scc - -RUN useradd -m build -RUN su build -c 'cd && git clone https://aur.archlinux.org/perl-config-general.git && cd perl-config-general && makepkg -s --noconfirm' -RUN pacman -U --noconfirm ~build/perl-config-general/*.pkg.tar.* -RUN su build -c 'cd && git clone https://aur.archlinux.org/tgt.git && cd tgt && makepkg -s --noconfirm' -RUN pacman -U --noconfirm ~build/tgt/*.pkg.tar.* -RUN rm -fr ~build + asciidoc \ + astyle \ + base-devel \ + bluez \ + btrfs-progs \ + busybox \ + cargo \ + cifs-utils \ + connman \ + cpio \ + dash \ + dhclient \ + dhcp \ + dmraid \ + elfutils \ + f2fs-tools \ + git \ + glibc \ + jq \ + linux \ + lvm2 \ + lzop \ + mdadm \ + multipath-tools \ + nbd \ + networkmanager \ + nfsidmap \ + nfs-utils \ + ntfs-3g \ + nvme-cli \ + open-iscsi \ + openssh \ + parted \ + pigz \ + plymouth \ + qemu \ + qrencode \ + rng-tools \ + sbsigntools \ + shellcheck \ + shfmt \ + squashfs-tools \ + strace \ + systemd-ukify \ + tcpdump \ + tgt \ + tpm2-tools \ + vi \ + && yes | pacman -Scc diff --git a/test/container/Dockerfile-Debian b/test/container/Dockerfile-Debian index 9ba3a1f..7e7e6d4 100644 --- a/test/container/Dockerfile-Debian +++ b/test/container/Dockerfile-Debian @@ -1,7 +1,5 @@ FROM docker.io/debian:latest -MAINTAINER https://github.com/dracutdevs/dracut - # Install needed packages for the dracut CI container # Install dracut as a linux-initramfs-tool provider so that the default initramfs-tool package does not get installed # Uninstall initramfs-tools-core as a workaround for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=994492 @@ -9,17 +7,16 @@ RUN apt-get update -y -qq && apt-get upgrade -y -qq && apt-get install -y -qq -- DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends -o Dpkg::Use-Pty=0 \ asciidoc \ astyle \ + bluez \ btrfs-progs \ busybox-static \ bzip2 \ ca-certificates \ + cargo \ console-setup \ cpio \ cryptsetup \ curl \ - dash \ - debhelper \ - debhelper-compat \ dmraid \ docbook \ docbook-xml \ @@ -32,6 +29,7 @@ RUN apt-get update -y -qq && apt-get upgrade -y -qq && apt-get install -y -qq -- iputils-ping \ isc-dhcp-client \ isc-dhcp-server \ + iscsiuio \ kmod \ less \ libdmraid-dev \ @@ -52,16 +50,17 @@ RUN apt-get update -y -qq && apt-get upgrade -y -qq && apt-get install -y -qq -- pigz \ pkg-config \ procps \ - qemu-system-x86 \ - quilt \ + qemu-kvm \ + rng-tools5 \ shellcheck \ + sbsigntool \ squashfs-tools \ strace \ - sudo \ systemd-boot-efi \ tcpdump \ tgt \ thin-provisioning-tools \ + tpm2-tools \ vim \ wget \ && apt-get clean && dpkg -P --force-depends dracut dracut-core initramfs-tools-core diff --git a/test/container/Dockerfile-Fedora-latest b/test/container/Dockerfile-Fedora-latest index 2ce3975..106af17 100644 --- a/test/container/Dockerfile-Fedora-latest +++ b/test/container/Dockerfile-Fedora-latest @@ -1,16 +1,15 @@ FROM registry.fedoraproject.org/fedora:latest -MAINTAINER https://github.com/dracutdevs/dracut - # Install needed packages for the dracut CI container RUN dnf -y install --setopt=install_weak_deps=False \ asciidoc \ + astyle \ bash-completion \ - biosdevname \ bluez \ btrfs-progs \ busybox \ bzip2 \ + cargo \ cifs-utils \ cryptsetup \ dash \ @@ -28,6 +27,7 @@ RUN dnf -y install --setopt=install_weak_deps=False \ iproute \ iputils \ iscsi-initiator-utils \ + jq \ kbd \ kernel \ kmod-devel \ @@ -49,7 +49,8 @@ RUN dnf -y install --setopt=install_weak_deps=False \ parted \ pcsc-lite \ pigz \ - qemu-system-x86-core \ + qemu \ + qrencode \ rng-tools \ rpm-build \ sbsigntools \ @@ -58,14 +59,13 @@ RUN dnf -y install --setopt=install_weak_deps=False \ shfmt \ squashfs-tools \ strace \ - sudo \ systemd-boot-unsigned \ systemd-networkd \ systemd-resolved \ + systemd-ukify \ tar \ tcpdump \ tpm2-tools \ wget \ - which \ xz \ && dnf -y remove dracut --noautoremove && dnf -y update && dnf clean all diff --git a/test/container/Dockerfile-Gentoo b/test/container/Dockerfile-Gentoo index f2bb555..7b4eb2a 100644 --- a/test/container/Dockerfile-Gentoo +++ b/test/container/Dockerfile-Gentoo @@ -1,57 +1,59 @@ -ARG TAG=musl FROM docker.io/gentoo/portage:latest as portage -# uefi stub in a separate builder -FROM docker.io/gentoo/stage3 as efistub +FROM docker.io/gentoo/stage3:systemd COPY --from=portage /var/db/repos/gentoo /var/db/repos/gentoo -# systemd-boot -RUN echo 'sys-apps/systemd-utils boot' > /etc/portage/package.use/systemd-utils && \ - emerge -qv sys-apps/systemd-utils +# Speed-up using binpkgs +RUN echo "MAKEOPTS=\"-j$(nproc) -l$(nproc)\"" >> /etc/portage/make.conf +RUN echo "EMERGE_DEFAULT_OPTS=\"-j$(nproc) -l$(nproc)\"" >> /etc/portage/make.conf +RUN echo "FEATURES=\"getbinpkg binpkg-ignore-signature parallel-fetch parallel-install pkgdir-index-trusted\"" >> /etc/portage/make.conf -# kernel and its dependencies in a separate builder -FROM docker.io/gentoo/stage3:$TAG as kernel -COPY --from=portage /var/db/repos/gentoo /var/db/repos/gentoo -# disable initramfs generation, only need the kernel image itself -RUN echo 'sys-kernel/gentoo-kernel-bin -initramfs' > /etc/portage/package.use/kernel -RUN emerge -qv sys-kernel/gentoo-kernel-bin - -FROM docker.io/gentoo/stage3:$TAG -COPY --from=portage /var/db/repos/gentoo /var/db/repos/gentoo -COPY --from=kernel /boot /boot -COPY --from=kernel /lib/modules /lib/modules -COPY --from=efistub /usr/lib/systemd/boot/efi /usr/lib/systemd/boot/efi -ARG TAG +# systemd-boot, no need to install intramfs with kernel +RUN echo "USE=\"boot kernel-install -initramfs\"" >> /etc/portage/make.conf -MAINTAINER https://github.com/dracutdevs/dracut +# Use debian's installkernel +RUN echo 'sys-kernel/installkernel -systemd' >> /etc/portage/package.use/kernel -# required by sys-fs/dmraid -RUN echo 'sys-fs/lvm2 lvm thin' > /etc/portage/package.use/lvm2 +# Enable ukify and cryptsetup tools (includes unit generator for crypttab) +RUN echo 'sys-apps/systemd ukify cryptsetup' >> /etc/portage/package.use/systemd -# workaround for https://bugs.gentoo.org/734022 whereby Gentoo does not support NFS4 with musl -RUN if [[ "$TAG" == 'musl' ]]; then echo 'net-fs/nfs-utils -nfsv4' > /etc/portage/package.use/nfs-utils ; fi +# Support thin volumes and build all of LVM2 including daemons and tools like lvchange +RUN echo 'sys-fs/lvm2 thin lvm' >> /etc/portage/package.use/lvm2 -# workaround for packages do not compile on musl -# https://bugs.gentoo.org/713490 for tgt -# https://bugs.gentoo.org/908587 for open-iscsi -RUN if [[ "$TAG" != 'musl' ]]; then emerge -qv sys-block/tgt sys-block/open-iscsi ; fi - -# Install needed packages for the dracut CI container -RUN emerge -qv \ +RUN emerge --quiet --deep --autounmask-continue=y --with-bdeps=n \ + app-admin/rsyslog \ app-arch/cpio \ + app-crypt/tpm2-tools \ + app-crypt/sbsigntools \ app-emulation/qemu \ + app-misc/jq \ + app-portage/gentoolkit \ app-shells/dash \ + dev-lang/rust-bin \ + net-fs/cifs-utils \ net-fs/nfs-utils \ net-misc/dhcp \ + net-wireless/bluez \ + sys-apps/biosdevname \ sys-apps/busybox \ + sys-apps/nvme-cli \ + sys-apps/rng-tools \ + sys-apps/systemd \ sys-block/nbd \ + sys-block/open-iscsi \ sys-block/parted \ + sys-block/tgt \ sys-fs/btrfs-progs \ sys-fs/cryptsetup \ sys-fs/dmraid \ - sys-fs/lvm2 \ sys-fs/mdadm \ sys-fs/multipath-tools \ sys-fs/ntfs3g \ sys-fs/squashfs-tools \ + sys-kernel/gentoo-kernel-bin \ + sys-libs/libxcrypt \ + sys-libs/glibc \ + virtual/pkgconfig \ && rm -rf /var/cache/* /usr/share/doc/* /usr/share/man/* + +RUN emerge --depclean --with-bdeps=n diff --git a/test/container/Dockerfile-OpenSuse-latest b/test/container/Dockerfile-OpenSuse-latest index 3e7cefc..a5fb7de 100644 --- a/test/container/Dockerfile-OpenSuse-latest +++ b/test/container/Dockerfile-OpenSuse-latest @@ -1,13 +1,52 @@ FROM registry.opensuse.org/opensuse/tumbleweed-dnf:latest -MAINTAINER https://github.com/dracutdevs/dracut - # Install needed packages for the dracut CI container RUN dnf -y install --setopt=install_weak_deps=False \ - dash asciidoc mdadm lvm2 dmraid cryptsetup nfs-utils nbd dhcp-server \ - strace libkmod-devel gcc bzip2 xz tar wget rpm-build make git bash-completion \ - sudo kernel dhcp-client qemu-kvm /usr/bin/qemu-system-$(uname -m) e2fsprogs \ - tcpdump iproute iputils kbd NetworkManager btrfsprogs tgt dbus-broker \ - iscsiuio open-iscsi which ShellCheck shfmt procps pigz parted squashfs ntfsprogs \ - multipath-tools util-linux-systemd systemd-boot \ - && dnf -y remove dracut && dnf -y update && dnf clean all + asciidoc \ + bash-completion \ + btrfsprogs \ + bzip2 \ + cargo \ + cryptsetup \ + dash \ + dbus-broker \ + dhcp-client \ + dhcp-server \ + dmraid \ + e2fsprogs \ + gcc \ + git \ + iproute \ + iputils \ + iscsiuio \ + kbd \ + kernel \ + libkmod-devel \ + lvm2 \ + make \ + mdadm \ + nbd \ + NetworkManager \ + nfs-utils \ + open-iscsi \ + parted \ + pigz \ + procps \ + qemu-kvm \ + rng-tools \ + rpm-build \ + sbsigntools \ + ShellCheck \ + shfmt \ + squashfs \ + strace \ + systemd-boot \ + tar \ + tcpdump \ + tgt \ + tpm2.0-tools \ + /usr/bin/qemu-system-$(uname -m) \ + util-linux-systemd \ + wget \ + xz \ + && rpm -e --nodeps dracut && dnf -y update && dnf clean all diff --git a/test/container/Dockerfile-Ubuntu b/test/container/Dockerfile-Ubuntu index 0fb7f20..ef15a67 100644 --- a/test/container/Dockerfile-Ubuntu +++ b/test/container/Dockerfile-Ubuntu @@ -1,17 +1,17 @@ FROM docker.io/ubuntu:latest -MAINTAINER https://github.com/dracutdevs/dracut - # Install needed packages for the dracut CI container # The Linux kernel is only readable by root. See https://launchpad.net/bugs/759725 RUN apt-get update -y -qq && apt-get upgrade -y -qq && \ DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends -o Dpkg::Use-Pty=0 \ asciidoc \ astyle \ + bluez \ btrfs-progs \ busybox-static \ bzip2 \ ca-certificates \ + cargo \ console-setup \ cpio \ cryptsetup \ @@ -28,6 +28,7 @@ RUN apt-get update -y -qq && apt-get upgrade -y -qq && \ iputils-ping \ isc-dhcp-client \ isc-dhcp-server \ + iscsiuio \ kmod \ less \ libdmraid-dev \ @@ -49,14 +50,17 @@ RUN apt-get update -y -qq && apt-get upgrade -y -qq && \ pkg-config \ procps \ qemu-kvm \ + rng-tools5 \ + sbsigntool \ shellcheck \ squashfs-tools \ strace \ - sudo \ - systemd \ + systemd-boot-efi \ + systemd-ukify \ tcpdump \ tgt \ thin-provisioning-tools \ + tpm2-tools \ vim \ wget \ && apt-get clean \ diff --git a/test/container/Dockerfile-Void b/test/container/Dockerfile-Void new file mode 100644 index 0000000..99044c3 --- /dev/null +++ b/test/container/Dockerfile-Void @@ -0,0 +1,64 @@ +FROM ghcr.io/void-linux/void-glibc-full + +RUN xbps-install -Syu xbps && xbps-install -yu \ + asciidoc \ + astyle \ + base-devel \ + bash \ + binutils \ + bluez \ + btrfs-progs \ + busybox \ + cargo \ + cifs-utils \ + connman \ + cpio \ + cryptsetup \ + curl \ + dash \ + dhclient \ + dhcp \ + dmraid \ + dosfstools \ + e2fsprogs \ + edk2-ovmf \ + elfutils \ + eudev \ + f2fs-tools \ + git \ + glibc \ + gnupg \ + iputils \ + jq \ + kbd \ + libkmod-devel \ + linux \ + lvm2 \ + lzop \ + make \ + mdadm \ + mtools \ + nbd \ + NetworkManager \ + nfs-utils \ + ntfs-3g \ + nvme-cli \ + open-iscsi \ + openssh \ + parted \ + pigz \ + plymouth \ + qemu \ + rng-tools \ + sbsigntool \ + shellcheck \ + shfmt \ + squashfs-tools \ + strace \ + systemd-boot-efistub \ + tcpdump \ + tgt \ + tpm2-tools \ + ukify \ + xz \ + && rm -rf /var/cache/xbps diff --git a/test/container/Dockerfile-alpine b/test/container/Dockerfile-alpine new file mode 100644 index 0000000..4f28c95 --- /dev/null +++ b/test/container/Dockerfile-alpine @@ -0,0 +1,62 @@ +FROM docker.io/alpine:latest + +RUN apk add --no-cache \ + alpine-sdk \ + asciidoc \ + bash \ + binutils \ + blkid \ + btrfs-progs \ + busybox \ + bzip2 \ + cargo \ + coreutils \ + cpio \ + cryptsetup \ + curl \ + dash \ + dhclient \ + dmraid \ + dosfstools \ + e2fsprogs \ + eudev \ + findmnt \ + gawk \ + git \ + gpg \ + grep \ + iputils \ + kbd \ + kmod-dev \ + linux-virt \ + losetup \ + lvm2 \ + make \ + mdadm \ + mtools \ + multipath-tools \ + musl-fts-dev \ + nbd \ + ntfs-3g-progs \ + open-iscsi \ + openssh \ + parted \ + partx \ + pigz \ + procps \ + qemu-img \ + qemu-system-x86_64 \ + rng-tools \ + sed \ + sfdisk \ + squashfs-tools \ + sudo \ + util-linux-misc \ + xz + +RUN \ + cp /usr/lib/udev/rules.d/* /lib/udev/rules.d/ && \ + ln -sf /sbin/poweroff /sbin/shutdown && \ + ln -sf /usr/bin/dash /bin/dash && \ + ln -sf /bin/sh /usr/bin/sh && \ + ln -sf /boot/vmlinuz-virt /boot/vmlinuz-$(cd /lib/modules; ls -1 | tail -1) |