ARG TAG=dev ARG DOCKER_IMAGE_ROOT=monok8s FROM --platform=$BUILDPLATFORM ${DOCKER_IMAGE_ROOT}/build-base:${TAG} AS build ARG BUSYBOX_VERSION ARG ARCH ARG CROSS_COMPILE WORKDIR /build RUN test -n "${BUSYBOX_VERSION}" || (echo "Please specify BUSYBOX_VERSION" >&2; exit 1); \ test -n "${ARCH}" || (echo "Please specify ARCH" >&2; exit 1); \ test -n "${CROSS_COMPILE}" || (echo "Please specify CROSS_COMPILE" >&2; exit 1) COPY packages/busybox-${BUSYBOX_VERSION}.tar.gz ./ RUN tar -xf busybox-${BUSYBOX_VERSION}.tar.gz && mv "busybox-${BUSYBOX_VERSION}" busybox WORKDIR /build/busybox RUN make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} defconfig\ && sed -i 's/^# CONFIG_STATIC is not set/CONFIG_STATIC=y/' .config RUN make CROSS_COMPILE=${CROSS_COMPILE} -j"$(nproc)" RUN make CROSS_COMPILE=${CROSS_COMPILE} CONFIG_PREFIX=/out/initramfs install WORKDIR /out/initramfs COPY initramfs/init init RUN chmod +x init RUN mkdir -p bin sbin etc proc sys dev lib usr/bin usr/sbin # Selective mods RUN mkdir -p /out/selected-mods /out/kernel COPY initramfs/selective-mods.sh / COPY out/rootfs /out/rootfs RUN /selective-mods.sh /out/rootfs/lib/modules/$(ls /out/rootfs/lib/modules/) ./lib/ RUN find . -print0 | cpio --null -ov --format=newc | gzip -9 > ../initramfs.cpio.gz FROM scratch COPY --from=build /out/initramfs.cpio.gz /initramfs.cpio.gz