- {platform: 'linux/arm64', runner: 'ubuntu-24.04-arm', tag: 'arm'}
config:
- {dockerfile: 'Dockerfile-alpine', tag: 'alpine:edge'}
- - {dockerfile: 'Dockerfile-alpine-busybox', tag: 'alpine:busybox-edge'}
+ - {dockerfile: 'Dockerfile-alpine', tag: 'alpine:busybox-edge', option: 'busybox'}
- {dockerfile: 'Dockerfile-arch', tag: 'arch:latest'}
- {dockerfile: 'Dockerfile-debian', tag: 'debian:latest'}
- {dockerfile: 'Dockerfile-fedora', tag: 'fedora:latest'}
platforms: ${{ matrix.architecture.platform }}
build-args: |
DISTRIBUTION=${{ matrix.config.tag }}
+ OPTION=${{ matrix.config.option }}
manifest:
needs: container
if: github.event_name == 'push' || github.event_name == 'schedule'
# - multipath-tools (does not work well)
# - kernel-install is not available
-ARG DISTRIBUTION=alpine
-FROM docker.io/${DISTRIBUTION}
+FROM docker.io/alpine:edge
# export
-ARG DISTRIBUTION
ARG TARGETARCH
+ARG OPTION
# Use dracut-tests package to install dependencies for test suite
RUN apk add --no-cache \
# workaround for https://gitlab.alpinelinux.org/alpine/aports/-/issues/17907
RUN \
ln -sf /boot/vmlinuz-virt /boot/vmlinuz-$(cd /lib/modules; ls -1 | tail -1)
+
+# busybox container
+# replace all GNU coreutils and GNU util-linux binaries with busybox binaries
+RUN \
+if [ "$OPTION" == "busybox" ] ; then \
+ mkdir /busybox && cd /busybox && /bin/busybox --install -s /busybox ;\
+ cp -a /busybox/* /bin/ ;\
+ cp -a /busybox/* /sbin/ ;\
+ cp -a /busybox/* /usr/bin/ ;\
+ cp -a /busybox/* /usr/sbin/ ;\
+fi
+++ /dev/null
-# Tiny container with busybox
-# GNU coreutils and GNU grep should not be installed
-
-FROM docker.io/alpine:edge
-
-RUN apk add --no-cache \
- bash \
- e2fsprogs \
- eudev \
- findmnt \
- gcc \
- kmod-dev \
- linux-virt \
- make \
- musl-dev \
- musl-fts-dev \
- qemu-system-$(uname -m)
-
-# workaround for https://gitlab.alpinelinux.org/alpine/aports/-/issues/17907
-RUN \
- ln -sf /boot/vmlinuz-virt /boot/vmlinuz-$(cd /lib/modules; ls -1 | tail -1)