linux-guest

Details
Source
FROM stagex/pallet-gcc-gnu-gnu AS base
ARG VERSION
COPY --from=stagex/core-openssl . /
COPY --from=stagex/core-libzstd . /
COPY --from=stagex/user-elfutils . /
ADD fetch/linux-${VERSION}.tar.xz .
ENV SOURCE_DATE_EPOCH=1
ENV KBUILD_BUILD_HOST=stagex
ENV KBUILD_BUILD_USER=user
ENV KBUILD_BUILD_TIMESTAMP="Thu Jan  1 12:00:00 AM GMT 1970"
COPY --chmod=775 <<-EOF /usr/bin/build-static
	#!/bin/sh
	set -eux
	make -j "$(nproc)" bzImage
  mkdir /rootfs
	cp .config /rootfs/linux.config
	cp "arch/$(uname -m)/boot/bzImage" /rootfs
EOF
COPY --chmod=775 <<-EOF /usr/bin/build-dynamic
	#!/bin/sh
	set -eux
	ARCH="$(uname -m)"
	make defconfig
	make -j "$(nproc)" bzImage
	make -j "$(nproc)" modules INSTALL_MOD_PATH=/rootfs
	mkdir -p /rootfs/usr/lib/modules
	make INSTALL_MOD_PATH=/rootfs/usr modules_install
	cp .config /rootfs/linux.config
	cp "arch/$(uname -m)/boot/bzImage" /rootfs
EOF
WORKDIR /linux-${VERSION}

FROM base AS build-linux-generic
RUN build-dynamic

FROM base AS build-linux-airgap
ADD airgap.config .config
RUN build-static

FROM base AS build-linux-server
ADD server.config .config
RUN build-static

FROM base AS build-linux-guest
ADD guest.config .config
RUN build-static

FROM base AS build-linux-guest-net
ADD guest-net.config .config
RUN build-static

FROM base AS build-linux-nitro
ADD nitro.config .config
RUN build-static

FROM base AS build-gen_initramfs
RUN --network=none <<-EOF
	set -eux
	gcc usr/gen_init_cpio.c -o usr/gen_init_cpio
	mkdir -p /rootfs/usr/bin
	cat usr/gen_initramfs.sh \
		| sed 's:usr/gen_init_cpio:gen_init_cpio:g' \
		> /rootfs/usr/bin/gen_initramfs
	chmod +x /rootfs/usr/bin/gen_initramfs
	cp -a usr/gen_init_cpio /rootfs/usr/bin
EOF

FROM stagex/core-filesystem AS package-linux-generic
COPY --from=build-linux-generic /rootfs/ /

FROM stagex/core-filesystem AS package-linux-airgap
COPY --from=build-linux-airgap /rootfs/ /

FROM stagex/core-filesystem AS package-linux-server
COPY --from=build-linux-server /rootfs/ /

FROM stagex/core-filesystem AS package-linux-guest
COPY --from=build-linux-guest /rootfs/ /

FROM stagex/core-filesystem AS package-linux-guest-net
COPY --from=build-linux-guest-net /rootfs/ /

FROM stagex/core-filesystem AS package-linux-nitro
COPY --from=build-linux-nitro /rootfs/ /

FROM stagex/core-filesystem AS package-gen_initramfs
COPY --from=build-gen_initramfs /rootfs/ /