penguin/monok8s

k8s image for Mono Gateway Dev Kit

docker/kernel-build.Dockerfile

raw ยท 1725 bytes

ARG TAG=dev
ARG DOCKER_IMAGE_ROOT=monok8s
FROM --platform=linux/amd64 ${DOCKER_IMAGE_ROOT}/build-base:${TAG}

ARG NXP_VERSION
ARG ARCH
ARG CROSS_COMPILE

WORKDIR /build

RUN test -n "${NXP_VERSION}" || (echo "Please specify NXP_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)

# Dev-only shortcut
COPY dev/nxplinux.tar.gz ./
RUN tar -xf nxplinux.tar.gz \
 && mv "linux-${NXP_VERSION}" nxplinux \
 && rm -f nxplinux.tar.gz

# Or download directly:
# RUN curl -L "https://github.com/nxp-qoriq/linux/archive/refs/tags/${NXP_VERSION}.tar.gz" -o nxplinux.tar.gz \
#  && tar -xf nxplinux.tar.gz \
#  && mv "linux-${NXP_VERSION}" nxplinux \
#  && rm -f nxplinux.tar.gz

WORKDIR /build/nxplinux

COPY kernel-extra.config /tmp/kernel-extra.config

# NXP tree: use the LSDK defconfig target
RUN make ARCH="${ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" defconfig lsdk.config \
 && ./scripts/kconfig/merge_config.sh -m .config /tmp/kernel-extra.config \
 && make ARCH="${ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" olddefconfig \
 && make ARCH="${ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" -j"$(nproc)"

# artifact collection
RUN mkdir -p /out/kernel /out/rootfs \
 && cp -av arch/arm64/boot/Image* /out/kernel/ 2>/dev/null || true \
 && cp -av arch/arm64/boot/dts /out/kernel/dts 2>/dev/null || true \
 && cp -av System.map .config /out/kernel/ \
 && make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} modules_install INSTALL_MOD_PATH=/out/rootfs

RUN depmod -b /out/rootfs $(ls /out/rootfs/lib/modules/)

ARG DTB_TARGET

RUN find /out/kernel -name "${DTB_TARGET}" -exec cp {} /out/ \;
RUN test -f "/out/${DTB_TARGET}"