"make release" draft
This commit is contained in:
43
docker/initramfs.Dockerfile
Normal file
43
docker/initramfs.Dockerfile
Normal file
@@ -0,0 +1,43 @@
|
||||
ARG TAG=dev
|
||||
ARG DOCKER_IMAGE_ROOT=monok8s
|
||||
FROM --platform=$BUILDPLATFORM ${DOCKER_IMAGE_ROOT}/kernel-build:${TAG} AS kernel
|
||||
|
||||
# Selective mods
|
||||
RUN mkdir /out/selected-mods
|
||||
COPY initramfs/selective-mods.sh /
|
||||
RUN /selective-mods.sh /out/rootfs/lib/modules/$(ls /out/rootfs/lib/modules/) /out/selected-mods
|
||||
|
||||
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
|
||||
|
||||
COPY --from=kernel /out/selected-mods/* ./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
|
||||
Reference in New Issue
Block a user