|
| 1 | +# syntax=docker/dockerfile:1.3-labs |
| 2 | +# vim: set ft=dockerfile: |
| 3 | + |
| 4 | +# override this with --build-arg |
| 5 | +ARG KERNEL_VER=bpf-next |
| 6 | + |
| 7 | +FROM quay.io/lvh-images/root-images:latest AS root-images |
| 8 | +FROM quay.io/lvh-images/kernel-images:"${KERNEL_VER}" AS kernel-image |
| 9 | +FROM quay.io/lvh-images/root-builder:latest AS builder |
| 10 | + |
| 11 | +ARG KERNEL_VER=bpf-next |
| 12 | + |
| 13 | +WORKDIR /data |
| 14 | +COPY --from=kernel-image /data/kernels /data/kernels |
| 15 | +COPY --from=root-images /data/images/kind.qcow2.zst /data/images/kind.qcow2.zst |
| 16 | +RUN zstd --decompress --rm --threads=0 /data/images/kind.qcow2.zst |
| 17 | + |
| 18 | +COPY <<EOF /data/images.json |
| 19 | +[ |
| 20 | + { |
| 21 | + \"name\": \"kind_"${KERNEL_VER}".qcow2\", |
| 22 | + \"parent\": \"kind.qcow2\", |
| 23 | + \"actions\": [ |
| 24 | + { |
| 25 | + \"comment\": \"install "${KERNEL_VER}"\", |
| 26 | + \"op\": { |
| 27 | + \"KernelInstallDir\": \"/data/kernels/"${KERNEL_VER}"\" |
| 28 | + }, |
| 29 | + \"type\": \"install-kernel\" |
| 30 | + }, |
| 31 | + { |
| 32 | + \"comment\": \"run depmod against all kernels\", |
| 33 | + \"op\": { |
| 34 | + \"Cmd\": \"find /lib/modules/ -maxdepth 1 -mindepth 1 -type d -exec basename {} \';\' | xargs -n1 depmod\" |
| 35 | + }, |
| 36 | + \"type\": \"run-command\" |
| 37 | + }, |
| 38 | + { \"op\": { \"Hostname\": \"kind-"${KERNEL_VER}"\"}, \"type\": \"set-hostname\" } |
| 39 | + ] |
| 40 | + } |
| 41 | +] |
| 42 | +EOF |
| 43 | + |
| 44 | +# mmdebstrap outputs messages in stderr, so we redirect stderr |
| 45 | +RUN lvh images build --image kind_${KERNEL_VER}.qcow2 --dir /data 2>&1 |
| 46 | +RUN zstd --compress --rm --threads=0 /data/images/kind_${KERNEL_VER}.qcow2 |
| 47 | +RUN rm /data/images/*.qcow2 |
| 48 | + |
| 49 | +FROM busybox |
| 50 | +COPY --from=builder /data/images /data/images |
0 commit comments