43 lines
1.2 KiB
Docker
43 lines
1.2 KiB
Docker
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 \
|
|
-e 's/^# CONFIG_STATIC is not set/CONFIG_STATIC=y/' \
|
|
-e 's/^CONFIG_TC=.*/# CONFIG_TC is not set/' .config
|
|
RUN make CROSS_COMPILE=${CROSS_COMPILE} -j"$(nproc)"
|
|
RUN make CROSS_COMPILE=${CROSS_COMPILE} CONFIG_PREFIX=/out/initramfs install
|
|
|
|
WORKDIR /build
|
|
|
|
ARG BUILD_TAG
|
|
|
|
COPY alpine/*.sh ./
|
|
COPY initramfs/*.sh ./
|
|
COPY out/rootfs /out/rootfs
|
|
COPY initramfs/rootfs-extra ./rootfs-extra
|
|
COPY out/build-info ./rootfs-extra/etc/build-info
|
|
|
|
WORKDIR /out/initramfs
|
|
RUN /build/build-rootfs.sh
|
|
|
|
FROM scratch
|
|
COPY --from=build /out/initramfs.cpio.gz /initramfs.cpio.gz
|