diff options
Diffstat (limited to 'test/container')
-rw-r--r-- | test/container/Dockerfile-Arch | 17 | ||||
-rw-r--r-- | test/container/Dockerfile-Debian | 67 | ||||
-rw-r--r-- | test/container/Dockerfile-Fedora-latest | 71 | ||||
-rw-r--r-- | test/container/Dockerfile-Gentoo | 57 | ||||
-rw-r--r-- | test/container/Dockerfile-OpenSuse-latest | 13 | ||||
-rw-r--r-- | test/container/Dockerfile-Ubuntu | 63 |
6 files changed, 288 insertions, 0 deletions
diff --git a/test/container/Dockerfile-Arch b/test/container/Dockerfile-Arch new file mode 100644 index 0000000..f05ce8f --- /dev/null +++ b/test/container/Dockerfile-Arch @@ -0,0 +1,17 @@ +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 diff --git a/test/container/Dockerfile-Debian b/test/container/Dockerfile-Debian new file mode 100644 index 0000000..9ba3a1f --- /dev/null +++ b/test/container/Dockerfile-Debian @@ -0,0 +1,67 @@ +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 +RUN apt-get update -y -qq && apt-get upgrade -y -qq && apt-get install -y -qq --no-install-recommends dracut && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends -o Dpkg::Use-Pty=0 \ + asciidoc \ + astyle \ + btrfs-progs \ + busybox-static \ + bzip2 \ + ca-certificates \ + console-setup \ + cpio \ + cryptsetup \ + curl \ + dash \ + debhelper \ + debhelper-compat \ + dmraid \ + docbook \ + docbook-xml \ + docbook-xsl \ + fdisk \ + g++ \ + gawk \ + git \ + iputils-arping \ + iputils-ping \ + isc-dhcp-client \ + isc-dhcp-server \ + kmod \ + less \ + libdmraid-dev \ + libkmod-dev \ + linux-image-generic \ + lvm2 \ + make \ + mdadm \ + multipath-tools \ + nbd-client \ + nbd-server \ + network-manager \ + nfs-kernel-server \ + ntfs-3g \ + open-iscsi \ + ovmf \ + parted \ + pigz \ + pkg-config \ + procps \ + qemu-system-x86 \ + quilt \ + shellcheck \ + squashfs-tools \ + strace \ + sudo \ + systemd-boot-efi \ + tcpdump \ + tgt \ + thin-provisioning-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 new file mode 100644 index 0000000..2ce3975 --- /dev/null +++ b/test/container/Dockerfile-Fedora-latest @@ -0,0 +1,71 @@ +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 \ + bash-completion \ + biosdevname \ + bluez \ + btrfs-progs \ + busybox \ + bzip2 \ + cifs-utils \ + cryptsetup \ + dash \ + dbus-daemon \ + device-mapper-multipath \ + dhcp-client \ + dhcp-server \ + dmraid \ + e2fsprogs \ + f2fs-tools \ + fcoe-utils \ + fuse3 \ + gcc \ + git \ + iproute \ + iputils \ + iscsi-initiator-utils \ + kbd \ + kernel \ + kmod-devel \ + libkcapi-hmaccalc \ + libselinux-utils \ + lvm2 \ + lzop \ + make \ + mdadm \ + memstrack \ + mksh \ + nbd \ + ndctl \ + NetworkManager \ + nfs-utils \ + ntfs-3g \ + ntfsprogs \ + nvme-cli \ + parted \ + pcsc-lite \ + pigz \ + qemu-system-x86-core \ + rng-tools \ + rpm-build \ + sbsigntools \ + scsi-target-utils \ + ShellCheck \ + shfmt \ + squashfs-tools \ + strace \ + sudo \ + systemd-boot-unsigned \ + systemd-networkd \ + systemd-resolved \ + 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 new file mode 100644 index 0000000..f2bb555 --- /dev/null +++ b/test/container/Dockerfile-Gentoo @@ -0,0 +1,57 @@ +ARG TAG=musl +FROM docker.io/gentoo/portage:latest as portage + +# uefi stub in a separate builder +FROM docker.io/gentoo/stage3 as efistub +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 + +# 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 + +MAINTAINER https://github.com/dracutdevs/dracut + +# required by sys-fs/dmraid +RUN echo 'sys-fs/lvm2 lvm thin' > /etc/portage/package.use/lvm2 + +# 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 + +# 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 \ + app-arch/cpio \ + app-emulation/qemu \ + app-shells/dash \ + net-fs/nfs-utils \ + net-misc/dhcp \ + sys-apps/busybox \ + sys-block/nbd \ + sys-block/parted \ + 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 \ + && rm -rf /var/cache/* /usr/share/doc/* /usr/share/man/* diff --git a/test/container/Dockerfile-OpenSuse-latest b/test/container/Dockerfile-OpenSuse-latest new file mode 100644 index 0000000..3e7cefc --- /dev/null +++ b/test/container/Dockerfile-OpenSuse-latest @@ -0,0 +1,13 @@ +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 diff --git a/test/container/Dockerfile-Ubuntu b/test/container/Dockerfile-Ubuntu new file mode 100644 index 0000000..0fb7f20 --- /dev/null +++ b/test/container/Dockerfile-Ubuntu @@ -0,0 +1,63 @@ +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 \ + btrfs-progs \ + busybox-static \ + bzip2 \ + ca-certificates \ + console-setup \ + cpio \ + cryptsetup \ + curl \ + dmraid \ + docbook \ + docbook-xml \ + docbook-xsl \ + fdisk \ + g++ \ + gawk \ + git \ + iputils-arping \ + iputils-ping \ + isc-dhcp-client \ + isc-dhcp-server \ + kmod \ + less \ + libdmraid-dev \ + libkmod-dev \ + linux-image-generic \ + lvm2 \ + make \ + mdadm \ + multipath-tools \ + nbd-client \ + nbd-server \ + network-manager \ + nfs-kernel-server \ + ntfs-3g \ + open-iscsi \ + ovmf \ + parted \ + pigz \ + pkg-config \ + procps \ + qemu-kvm \ + shellcheck \ + squashfs-tools \ + strace \ + sudo \ + systemd \ + tcpdump \ + tgt \ + thin-provisioning-tools \ + vim \ + wget \ + && apt-get clean \ + && chmod a+r /boot/vmlinu* |