penguin/monok8s

k8s image for Mono Gateway Dev Kit

docker/fit-build.Dockerfile

raw ยท 1523 bytes

ARG TAG=dev
ARG DOCKER_IMAGE_ROOT=monok8s
FROM --platform=linux/amd64 ${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=linux/amd64 ${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 dev/busybox.tar.gz ./
RUN tar -xf busybox.tar.gz && mv "busybox-${BUSYBOX_VERSION}" busybox

# RUN curl -L https://github.com/mirror/busybox/archive/refs/tags/${BUSYBOX_VERSION}.tar.gz -o busybox.tar.gz \
#  && tar -xf busybox.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