summaryrefslogtreecommitdiffstats
path: root/test/container
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--test/container/Dockerfile-Arch17
-rw-r--r--test/container/Dockerfile-Debian67
-rw-r--r--test/container/Dockerfile-Fedora-latest71
-rw-r--r--test/container/Dockerfile-Gentoo57
-rw-r--r--test/container/Dockerfile-OpenSuse-latest13
-rw-r--r--test/container/Dockerfile-Ubuntu63
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*