FROM linuxkit/alpine:a120ad6aead3fe583eaa20e9b75a05ac1b3487da AS kernel-build RUN apk add \ argp-standalone \ build-base \ curl \ diffutils \ ncurses-dev \ tar \ xz ARG KERNEL_VERSIONS # There is no simple way to copy directories with wild cards as needed # for patches-*. Copy the entire dir instead. COPY / / # Unpack kernels (download if not present) RUN set -e && for VERSION in ${KERNEL_VERSIONS}; do \ echo "Downloading/Unpacking $VERSION" && \ KERNEL_SOURCE=https://www.kernel.org/pub/linux/kernel/v4.x/linux-${VERSION}.tar.xz && \ [ -f sources/linux-${VERSION}.tar.xz ] || curl -fSLo sources/linux-${VERSION}.tar.xz ${KERNEL_SOURCE} && \ tar xf sources/linux-${VERSION}.tar.xz; \ done # Apply patches to all kernels and move config files into place RUN for VERSION in ${KERNEL_VERSIONS}; do \ SERIES=${VERSION%.*}.x && \ echo "Patching $VERSION" && \ cd /linux-${VERSION} && \ set -e && for patch in /patches-${SERIES}/*.patch; do \ echo "Applying $patch" && \ patch -p1 < "$patch"; \ done && \ mv /kernel_config-${SERIES}-x86_64 arch/x86/configs/x86_64_defconfig && \ mv /kernel_config-${SERIES}-aarch64 arch/arm64/configs/defconfig; \ done ENTRYPOINT ["/bin/sh"]