From bc555e9826e328552b1b78e163aa9962e65671b7 Mon Sep 17 00:00:00 2001 From: Christoph Ostarek Date: Fri, 12 Sep 2025 16:44:31 +0200 Subject: [PATCH 1/5] pillar/Makefile: only run lkt when build-args need this change runs lkt only for the targets `build-docker` and `build-docker-test`, it does not run anymore for all the other targets as the global variable `DOCKER_LIKE_LKT` now holds the command and not the output of the command otherwise it leads to: ``` 35 [build 7/14] RUN --mount=type=cache,target=/root/.cache/go-build echo "Running go vet" && make HV="$HV" vet && echo "Running go fmt" && ERR="$(find . -name \*.go | grep -v /vendor/ | xargs gofmt -d -e -l -s)" && if [ -n "$ERR" ] ; then printf 'go fmt Failed - ERR: %s' "$ERR" ; exit 1 ; fi && make ZARCH=amd64 HV="$HV" DEV="n" RSTATS=n RSTATS_ENDPOINT= RSTATS_TAG= DISTDIR=/final/opt/zededa/bin BUILD_VERSION=v0.0.0-20250911170914-280122ca6335 build 35 1.824 Running go vet 35 1.828 /bin/sh: ../../build-tools/bin/linuxkit: not found 35 1.830 go vet ./... ``` as inside of the pillar docker image there is no linuxkit Signed-off-by: Christoph Ostarek --- pkg/pillar/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/pillar/Makefile b/pkg/pillar/Makefile index f4bf7036bce..e455f052413 100644 --- a/pkg/pillar/Makefile +++ b/pkg/pillar/Makefile @@ -10,7 +10,6 @@ ZARCH ?= $(HOSTARCH) DISTDIR := dist/$(ZARCH) BUILD_VERSION ?= -DOCKER_LIKE_LKT:=$(shell ../../build-tools/bin/linuxkit pkg build --network --platforms linux/$(ZARCH) --dry-run --force ./ | tail -n1 | perl -pe 's/ buildx / /g') DOCKER_TAG:=lfedge/eve-pillar:local-$(ZARCH) APPS = zedbox @@ -67,6 +66,8 @@ $(APPS1): $(DISTDIR) shell: make -C ../.. shell +build-docker build-docker-test: DOCKER_LIKE_LKT = $(shell ../../build-tools/bin/linuxkit pkg build --network --platforms linux/$(ZARCH) --dry-run --force ./ | tail -n1 | perl -pe 's/ buildx / /g') + build-docker: $(DOCKER_LIKE_LKT) -t $(DOCKER_TAG) From c8be975d061aadb520128c4c3b26145fb23a0461 Mon Sep 17 00:00:00 2001 From: Christoph Ostarek Date: Fri, 12 Sep 2025 16:44:31 +0200 Subject: [PATCH 2/5] pillar/Makefile: fix $(shell ) build-docker-test $(shell ...) is evaluated immediately and not on the line it is executed on, therefore build-docker-test needs to be split into three different targets otherwise an error message like this shows up: ``` Dockerfile:19 -------------------- 17 | 18 | FROM ${REL_HASH_LFEDGE_EVE_UEFI} AS uefi-build 19 | >>> FROM ${REL_HASH_LFEDGE_EVE_DOM0_ZTOOLS} AS zfs 20 | RUN mkdir /out 21 | # copy zfs-related files from dom0-ztools using prepared list of files -------------------- ERROR: failed to build: failed to solve: lfedge/eve-dom0-ztools:000adaabe42b4f34dc196b722f143d3ae39f47fa-dirty-cb3d84e: failed to resolve source metadata for docker.io/lfedge/eve-dom0-ztools:000adaabe42b4f34dc196b722f143d3ae39f47fa-dirty-cb3d84e: docker.io/lfedge/eve-dom0-ztools:000adaabe42b4f34dc196b722f143d3ae39f47fa-dirty-cb3d84e: not found ``` Signed-off-by: Christoph Ostarek --- pkg/pillar/Makefile | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkg/pillar/Makefile b/pkg/pillar/Makefile index e455f052413..c4425dbb2d2 100644 --- a/pkg/pillar/Makefile +++ b/pkg/pillar/Makefile @@ -10,6 +10,7 @@ ZARCH ?= $(HOSTARCH) DISTDIR := dist/$(ZARCH) BUILD_VERSION ?= +DOCKER_LIKE_LKT:= ../../build-tools/bin/linuxkit pkg build --network --platforms linux/$(ZARCH) --dry-run --force ./ | tail -n1 | perl -pe 's/ buildx / /g' DOCKER_TAG:=lfedge/eve-pillar:local-$(ZARCH) APPS = zedbox @@ -66,18 +67,18 @@ $(APPS1): $(DISTDIR) shell: make -C ../.. shell -build-docker build-docker-test: DOCKER_LIKE_LKT = $(shell ../../build-tools/bin/linuxkit pkg build --network --platforms linux/$(ZARCH) --dry-run --force ./ | tail -n1 | perl -pe 's/ buildx / /g') - build-docker: - $(DOCKER_LIKE_LKT) -t $(DOCKER_TAG) + $(shell $(DOCKER_LIKE_LKT)) -t $(DOCKER_TAG) enter-docker-dev: build-docker-test docker run --platform linux/$(ZARCH) -it --rm --entrypoint /bin/sh $(DOCKER_TAG) -build-docker-test: +build-docker-test-dependencies: make -C ../../ pillar-cache-export-docker-load - $(DOCKER_LIKE_LKT) --build-arg TEST_TOOLS=y --load --target build - docker image tag $(shell $(DOCKER_LIKE_LKT) --build-arg TEST_TOOLS=y --load -q --target build) $(DOCKER_TAG) +build-docker-test-build: build-docker-test-dependencies + $(shell $(DOCKER_LIKE_LKT)) --build-arg TEST_TOOLS=y --load --target build +build-docker-test: build-docker-test-build + docker image tag $(shell $(shell $(DOCKER_LIKE_LKT)) --build-arg TEST_TOOLS=y --load -q --target build) $(DOCKER_TAG) test: build-docker-test rm -f results.json From aa349bc45466daee62d23b9edf63c904e30832cc Mon Sep 17 00:00:00 2001 From: Christoph Ostarek Date: Thu, 11 Sep 2025 19:57:16 +0200 Subject: [PATCH 3/5] hadolint: ignore DL3006 in general it is used to prevent using docker images without tag, but for us linuxkit fills in the tag Signed-off-by: Christoph Ostarek --- .hadolint.yaml | 1 + pkg/alpine/Dockerfile | 2 -- pkg/bpftrace/Dockerfile | 1 - pkg/bsp-imx/Dockerfile | 5 +---- pkg/cross-compilers/Dockerfile | 1 - pkg/fscrypt/Dockerfile | 3 +-- pkg/grub/Dockerfile | 1 - pkg/installer/Dockerfile | 1 - pkg/optee-os/Dockerfile | 6 +----- pkg/pillar/Dockerfile | 7 +------ pkg/u-boot/Dockerfile | 1 - pkg/vector/Dockerfile | 2 -- 12 files changed, 5 insertions(+), 26 deletions(-) diff --git a/.hadolint.yaml b/.hadolint.yaml index 264850568d8..c3ce2a44f86 100644 --- a/.hadolint.yaml +++ b/.hadolint.yaml @@ -2,3 +2,4 @@ ignored: - DL3059 - DL3002 + - DL3006 diff --git a/pkg/alpine/Dockerfile b/pkg/alpine/Dockerfile index 3afa566038d..b42b114823d 100644 --- a/pkg/alpine/Dockerfile +++ b/pkg/alpine/Dockerfile @@ -5,7 +5,6 @@ FROM lfedge/eve-alpine:e799def68af51dba83ec5a41f34bd0109704574f AS cache FROM lfedge/eve-alpine:b96ae7c5b776702cdc7596e3722e40cc0d353ad7 AS cache-riscv64 FROM cache AS cache-amd64 FROM cache AS cache-arm64 -# hadolint ignore=DL3006 FROM cache-${TARGETARCH} AS cache-build ARG ALPINE_VERSION=3.16 @@ -76,7 +75,6 @@ ENV EVE_TARGET_ARCH=riscv64 # we merge layers in previous step # so we should avoid large possible diff -# hadolint ignore=DL3006 FROM final-${TARGETARCH} COPY --from=compactor / / ENV GOTOOLCHAIN=local diff --git a/pkg/bpftrace/Dockerfile b/pkg/bpftrace/Dockerfile index 7a8c94d3a2b..3663efc1fcc 100644 --- a/pkg/bpftrace/Dockerfile +++ b/pkg/bpftrace/Dockerfile @@ -50,5 +50,4 @@ FROM bin AS bin-amd64 FROM bin AS bin-arm64 FROM scratch AS bin-riscv64 -# hadolint ignore=DL3006 FROM bin-${TARGETARCH} AS bpftrace diff --git a/pkg/bsp-imx/Dockerfile b/pkg/bsp-imx/Dockerfile index dbeb883b3b9..b9d9df4aae0 100644 --- a/pkg/bsp-imx/Dockerfile +++ b/pkg/bsp-imx/Dockerfile @@ -14,7 +14,7 @@ FROM ${EVE_ALPINE_IMAGE} AS build-native ARG BUILD_PKGS_BASE RUN BUILD_PKGS="${BUILD_PKGS_BASE}" eve-alpine-deploy.sh -# hadolint ignore=DL3006,DL3029 +# hadolint ignore=DL3029 FROM --platform=${BUILDPLATFORM} ${EVE_ALPINE_IMAGE} AS build-cross ARG BUILD_PKGS_BASE RUN BUILD_PKGS="${BUILD_PKGS_BASE}" eve-alpine-deploy.sh @@ -23,7 +23,6 @@ RUN BUILD_PKGS="${BUILD_PKGS_BASE}" eve-alpine-deploy.sh FROM --platform=${BUILDPLATFORM} lfedge/eve-cross-compilers:f476a79bcd086759592a105a49f9ed5bfa2c4ffa AS cross-compilers # will use several packages from target arch and copy them to sysroot -# hadolint ignore=DL3006 FROM ${EVE_ALPINE_IMAGE} AS cross-compile-libs ENV PKGS="musl-dev libgcc libintl libuuid libtirpc libblkid" RUN eve-alpine-deploy.sh @@ -36,7 +35,6 @@ ENV EVE_TARGET_ARCH=aarch64 FROM build-cross AS build-cross-target-riscv64 ENV EVE_TARGET_ARCH=riscv64 -# hadolint ignore=DL3006 FROM build-cross-target-${TARGETARCH} AS build-cross-target ENV CROSS_COMPILE_ENV="${EVE_TARGET_ARCH}-alpine-linux-musl-" COPY --from=cross-compilers /packages /packages @@ -54,7 +52,6 @@ FROM build-native AS target-amd64-build-amd64 FROM build-native AS target-arm64-build-arm64 FROM build-native AS target-riscv64-build-riscv64 -# hadolint ignore=DL3006 FROM target-${TARGETARCH}-build-${BUILDARCH} AS build SHELL ["/bin/bash", "-eo", "pipefail", "-c"] diff --git a/pkg/cross-compilers/Dockerfile b/pkg/cross-compilers/Dockerfile index d21a5217f77..d59509bf4bf 100644 --- a/pkg/cross-compilers/Dockerfile +++ b/pkg/cross-compilers/Dockerfile @@ -49,7 +49,6 @@ FROM build-base AS build-armhf # we cannot build cross-compilers without additional patches FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build-riscv64 -# hadolint ignore=DL3006 FROM build-${TARGETARCH} AS build RUN mkdir -p /packages diff --git a/pkg/fscrypt/Dockerfile b/pkg/fscrypt/Dockerfile index 039d700f184..4ee49bd81d6 100644 --- a/pkg/fscrypt/Dockerfile +++ b/pkg/fscrypt/Dockerfile @@ -8,7 +8,6 @@ FROM build-base AS build-amd64 FROM build-base AS build-arm64 FROM build-base AS build-riscv64 -# hadolint ignore=DL3006 FROM build-${TARGETARCH} AS build ENV BUILD_PKGS git gcc make libc-dev linux-pam-dev m4 findutils util-linux make patch @@ -29,4 +28,4 @@ RUN set -e && for patch in *.patch; do \ RUN make -j "$(getconf _NPROCESSORS_ONLN)" && make DESTDIR="/out/opt/zededa" PREFIX="" install FROM scratch -COPY --from=build /out/opt/zededa/bin /opt/zededa/bin \ No newline at end of file +COPY --from=build /out/opt/zededa/bin /opt/zededa/bin diff --git a/pkg/grub/Dockerfile b/pkg/grub/Dockerfile index bae7e8f61e8..2f936d5cb8f 100644 --- a/pkg/grub/Dockerfile +++ b/pkg/grub/Dockerfile @@ -50,7 +50,6 @@ ENV GRUB_COMMIT=2.06 ENV GRUB_PATCHES="patches-${GRUB_COMMIT} patches-riscv64-${GRUB_COMMIT}" ENV GRUB_PLATFORM=efi -# hadolint ignore=DL3006 FROM grub-build-${TARGETARCH} AS grub-build ENV GRUB_REPO=https://cgit.git.savannah.gnu.org/cgit/grub.git diff --git a/pkg/installer/Dockerfile b/pkg/installer/Dockerfile index 2bfa052a169..4777e65063e 100644 --- a/pkg/installer/Dockerfile +++ b/pkg/installer/Dockerfile @@ -16,7 +16,6 @@ ENV CARGO_BUILD_TARGET="aarch64-unknown-linux-musl" FROM rust-host AS target-riscv64 ENV CARGO_BUILD_TARGET="riscv64gc-unknown-linux-gnu" -# hadolint ignore=DL3006 FROM target-$TARGETARCH AS rust WORKDIR /usr/local/my-installer diff --git a/pkg/optee-os/Dockerfile b/pkg/optee-os/Dockerfile index 3bc1924ecb7..8f47adc9d3b 100644 --- a/pkg/optee-os/Dockerfile +++ b/pkg/optee-os/Dockerfile @@ -6,12 +6,11 @@ ARG BUILD_PKGS_BASE="autoconf automake bash binutils binutils-dev build-base bc # we use the same image in several places ARG EVE_ALPINE_IMAGE=lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 -# hadolint ignore=DL3006 FROM ${EVE_ALPINE_IMAGE} AS build-native ARG BUILD_PKGS_BASE RUN BUILD_PKGS="${BUILD_PKGS_BASE}" eve-alpine-deploy.sh -# hadolint ignore=DL3006,DL3029 +# hadolint ignore=DL3029 FROM --platform=${BUILDPLATFORM} ${EVE_ALPINE_IMAGE} AS build-cross ARG BUILD_PKGS_BASE RUN BUILD_PKGS="${BUILD_PKGS_BASE}" eve-alpine-deploy.sh @@ -20,7 +19,6 @@ RUN BUILD_PKGS="${BUILD_PKGS_BASE}" eve-alpine-deploy.sh FROM --platform=${BUILDPLATFORM} lfedge/eve-cross-compilers:f476a79bcd086759592a105a49f9ed5bfa2c4ffa AS cross-compilers # will use several packages from target arch and copy them to sysroot -# hadolint ignore=DL3006 FROM ${EVE_ALPINE_IMAGE} AS cross-compile-libs ENV PKGS musl-dev libgcc libintl libuuid libtirpc libblkid libattr RUN eve-alpine-deploy.sh @@ -33,7 +31,6 @@ ENV EVE_TARGET_ARCH=aarch64 FROM build-cross AS build-cross-target-riscv64 ENV EVE_TARGET_ARCH=riscv64 -# hadolint ignore=DL3006 FROM build-cross-target-${TARGETARCH} AS build-cross-target ENV CROSS_COMPILE_ENV="${EVE_TARGET_ARCH}"-alpine-linux-musl- ENV CROSS_COMPILE_ARM32_ENV="armv6-alpine-linux-musleabihf-" @@ -52,7 +49,6 @@ FROM build-native AS target-amd64-build-amd64 FROM build-native AS target-arm64-build-arm64 FROM build-native AS target-riscv64-build-riscv64 -# hadolint ignore=DL3006 FROM target-${TARGETARCH}-build-${BUILDARCH} AS build # ARM32 compiler is needed on all platforms diff --git a/pkg/pillar/Dockerfile b/pkg/pillar/Dockerfile index 8f9bcd1e618..5718cacb7c4 100644 --- a/pkg/pillar/Dockerfile +++ b/pkg/pillar/Dockerfile @@ -27,12 +27,11 @@ RUN while read -r x; do \ fi \ done < /etc/zfs-files -# hadolint ignore=DL3006 FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build-native ARG BUILD_PKGS_BASE RUN BUILD_PKGS="${BUILD_PKGS_BASE}" eve-alpine-deploy.sh -# hadolint ignore=DL3006,DL3029 +# hadolint ignore=DL3029 FROM --platform=${BUILDPLATFORM} ${REL_HASH_LFEDGE_EVE_ALPINE} AS build-cross ARG BUILD_PKGS_BASE RUN BUILD_PKGS="${BUILD_PKGS_BASE}" eve-alpine-deploy.sh @@ -41,7 +40,6 @@ RUN BUILD_PKGS="${BUILD_PKGS_BASE}" eve-alpine-deploy.sh FROM --platform=${BUILDPLATFORM} ${REL_HASH_LFEDGE_EVE_CROSS_COMPILERS} AS cross-compilers # will use several packages from target arch and copy them to sysroot -# hadolint ignore=DL3006 FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS cross-compile-libs ENV PKGS musl-dev libgcc libintl libuuid libtirpc libblkid linux-headers RUN eve-alpine-deploy.sh @@ -54,7 +52,6 @@ ENV EVE_TARGET_ARCH=aarch64 FROM build-cross AS build-cross-target-amd64 ENV EVE_TARGET_ARCH=x86_64 -# hadolint ignore=DL3006 FROM build-cross-target-${TARGETARCH} AS build-cross-target ENV CROSS_COMPILE_ENV="${EVE_TARGET_ARCH}"-alpine-linux-musl- COPY --from=cross-compilers /packages /packages @@ -69,7 +66,6 @@ FROM build-cross-target AS target-amd64-build-arm64 FROM build-native AS target-amd64-build-amd64 FROM build-native AS target-arm64-build-arm64 -# hadolint ignore=DL3006 FROM target-${TARGETARCH}-build-${BUILDARCH} AS build ARG DEV=n ARG TEST_TOOLS=n @@ -148,7 +144,6 @@ FROM ${REL_HASH_LFEDGE_EVE_GPT_TOOLS} AS gpttools # collector collects everything together and then does any processing like stripping binaries. # We use this interim "collector" so that we can do processing. -# hadolint ignore=DL3006 FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS collector ENV BUILD_PKGS patch ENV PKGS alpine-baselayout musl-utils libtasn1-progs pciutils yajl xz bash iptables ip6tables iproute2 \ diff --git a/pkg/u-boot/Dockerfile b/pkg/u-boot/Dockerfile index 7c1d1912aa9..32253562fff 100644 --- a/pkg/u-boot/Dockerfile +++ b/pkg/u-boot/Dockerfile @@ -53,7 +53,6 @@ FROM build-base AS build-riscv64 ENV TARGET qemu-riscv64_smode_defconfig RUN for p in /tmp/patches/patches-"${VERSION}"/*.patch ; do patch -p1 < "$p" || exit 1 ; done -# hadolint ignore=DL3006 FROM build-${TARGETARCH} AS build # need to tweak u-boot config with our local settings diff --git a/pkg/vector/Dockerfile b/pkg/vector/Dockerfile index eccd4c8c95a..187ed16e0b5 100644 --- a/pkg/vector/Dockerfile +++ b/pkg/vector/Dockerfile @@ -21,7 +21,6 @@ sinks-socket,\ sources-prometheus-scrape,\ sinks-prometheus' -# hadolint ignore=DL3006 FROM --platform=$BUILDPLATFORM ${RUST_VERSION} AS toolchain-base ARG TARGETARCH @@ -34,7 +33,6 @@ ENV CARGO_BUILD_TARGET="aarch64-unknown-linux-musl" FROM toolchain-base AS target-riscv64 ENV CARGO_BUILD_TARGET="riscv64gc-unknown-linux-gnu" -# hadolint ignore=DL3006 FROM target-$TARGETARCH AS toolchain RUN echo "Cargo target: $CARGO_BUILD_TARGET" From cb405b32e3ea979ea44ef99b3f7da5cab8e3002d Mon Sep 17 00:00:00 2001 From: Christoph Ostarek Date: Thu, 11 Sep 2025 19:41:09 +0200 Subject: [PATCH 4/5] pkg/*: use automatic hashes provided by linuxkit to avoid having to bump manually like crazy Signed-off-by: Christoph Ostarek --- pkg/acrn-kernel/Dockerfile | 4 +++- pkg/acrn-kernel/build.yml | 3 +++ pkg/acrn/Dockerfile | 4 +++- pkg/acrn/build.yml | 3 +++ pkg/alpine-base/build.yml | 3 +++ pkg/alpine/build.yml | 3 +++ pkg/apparmor/Dockerfile | 4 +++- pkg/apparmor/build.yml | 3 +++ pkg/bpftrace/Dockerfile | 5 ++++- pkg/bpftrace/build.yml | 3 +++ pkg/bsp-imx/Dockerfile | 15 ++++++++------- pkg/bsp-imx/build.yml | 3 +++ pkg/cross-compilers/Dockerfile | 6 ++++-- pkg/cross-compilers/build.yml | 3 +++ pkg/debug/Dockerfile | 10 +++++++--- pkg/debug/build.yml | 3 +++ pkg/dnsmasq/Dockerfile | 4 +++- pkg/dnsmasq/build.yml | 3 +++ pkg/dom0-ztools/Dockerfile | 5 ++++- pkg/dom0-ztools/build.yml | 3 +++ pkg/edgeview/Dockerfile | 5 ++++- pkg/edgeview/build.yml | 3 +++ pkg/eve/Dockerfile.in | 4 +++- pkg/eve/build.yml | 3 +++ pkg/external-boot-image/build.yml | 3 +++ pkg/fscrypt/Dockerfile | 4 +++- pkg/fscrypt/build.yml | 5 ++++- pkg/fw/Dockerfile | 10 ++++++---- pkg/fw/build-evaluation-generic.yml | 1 + pkg/fw/build-evaluation.yml | 1 + pkg/fw/build-nvidia-jp5.yml | 1 + pkg/fw/build-nvidia-jp6.yml | 1 + pkg/fw/build.yml | 1 + pkg/gpt-tools/Dockerfile | 4 +++- pkg/gpt-tools/build.yml | 3 +++ pkg/grub/Dockerfile | 4 +++- pkg/grub/build.yml | 3 +++ pkg/guacd/Dockerfile | 5 ++++- pkg/guacd/build.yml | 3 +++ pkg/installer/Dockerfile | 7 +++++-- pkg/installer/build.yml | 3 +++ pkg/ipxe/Dockerfile | 4 +++- pkg/ipxe/build.yml | 3 +++ pkg/kdump/Dockerfile | 5 ++++- pkg/kdump/build.yml | 3 +++ pkg/kexec/Dockerfile | 4 +++- pkg/kexec/build.yml | 3 +++ pkg/kube/Dockerfile | 4 +++- pkg/kube/build.yml | 3 +++ pkg/kvm-tools/Dockerfile | 4 +++- pkg/kvm-tools/build.yml | 3 +++ pkg/measure-config/Dockerfile | 5 ++++- pkg/measure-config/build.yml | 3 +++ pkg/memory-monitor/Dockerfile | 4 +++- pkg/memory-monitor/build.yml | 3 +++ pkg/mkconf/Dockerfile | 4 +++- pkg/mkconf/build.yml | 3 +++ pkg/mkimage-iso-efi/Dockerfile | 4 +++- pkg/mkimage-iso-efi/build.yml | 3 +++ pkg/mkimage-raw-efi/Dockerfile | 5 ++++- pkg/mkimage-raw-efi/build.yml | 3 +++ pkg/mkrootfs-ext4/Dockerfile | 4 +++- pkg/mkrootfs-ext4/build.yml | 3 +++ pkg/mkrootfs-squash/Dockerfile | 4 +++- pkg/mkrootfs-squash/build.yml | 3 +++ pkg/monitor/Dockerfile | 5 +++-- pkg/monitor/build.yml | 3 +++ pkg/newlog/Dockerfile | 5 ++++- pkg/newlog/build.yml | 3 +++ pkg/node-exporter/build.yml | 3 +++ pkg/nvidia/Dockerfile | 3 ++- pkg/nvidia/build-nvidia-jp6.yml | 1 + pkg/nvidia/build.yml | 1 + pkg/optee-os/Dockerfile | 14 +++++++------- pkg/optee-os/build.yml | 3 +++ pkg/pillar/build-dev.yml | 1 + pkg/pillar/build-kubevirt-dev.yml | 1 + pkg/pillar/build-rstats.yml | 1 + pkg/recovertpm/Dockerfile | 4 +++- pkg/recovertpm/build.yml | 3 +++ pkg/rngd/Dockerfile | 5 ++++- pkg/rngd/build.yml | 3 +++ pkg/sources/Dockerfile | 4 +++- pkg/sources/build.yml | 3 +++ pkg/storage-init/Dockerfile | 4 +++- pkg/storage-init/build.yml | 3 +++ pkg/u-boot/Dockerfile | 4 +++- pkg/u-boot/build.yml | 3 +++ pkg/udev/Dockerfile | 4 +++- pkg/udev/build.yml | 3 +++ pkg/uefi/Dockerfile | 5 ++++- pkg/uefi/build.yml | 3 +++ pkg/vector/Dockerfile | 3 ++- pkg/vector/build.yml | 3 +++ pkg/vtpm/Dockerfile | 7 +++++-- pkg/vtpm/build.yml | 3 +++ pkg/watchdog/Dockerfile | 4 +++- pkg/watchdog/build.yml | 3 +++ pkg/wlan/Dockerfile | 5 ++++- pkg/wlan/build.yml | 3 +++ pkg/wwan/Dockerfile | 4 +++- pkg/wwan/build.yml | 3 +++ pkg/xen-tools/Dockerfile | 9 ++++++--- pkg/xen-tools/build.yml | 3 +++ pkg/xen/Dockerfile | 4 +++- pkg/xen/build.yml | 3 +++ 106 files changed, 332 insertions(+), 71 deletions(-) diff --git a/pkg/acrn-kernel/Dockerfile b/pkg/acrn-kernel/Dockerfile index 8cc586309fa..3cb473a75cf 100644 --- a/pkg/acrn-kernel/Dockerfile +++ b/pkg/acrn-kernel/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS kernel-build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS kernel-build ENV BUILD_PKGS \ argp-standalone automake bash bc binutils-dev bison build-base \ diff --git a/pkg/acrn-kernel/build.yml b/pkg/acrn-kernel/build.yml index 5f0388227ed..f4e45c665b8 100644 --- a/pkg/acrn-kernel/build.yml +++ b/pkg/acrn-kernel/build.yml @@ -1,2 +1,5 @@ image: eve-acrn-kernel org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/acrn/Dockerfile b/pkg/acrn/Dockerfile index e0ea5d60cd5..7d80e709982 100644 --- a/pkg/acrn/Dockerfile +++ b/pkg/acrn/Dockerfile @@ -3,7 +3,9 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS kernel-build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS kernel-build ENV BUILD_PKGS \ gcc make libc-dev dev86 xz-dev perl bash python3-dev gettext iasl \ diff --git a/pkg/acrn/build.yml b/pkg/acrn/build.yml index edc4c8aec14..48514ba98d7 100644 --- a/pkg/acrn/build.yml +++ b/pkg/acrn/build.yml @@ -1,2 +1,5 @@ image: eve-acrn org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/alpine-base/build.yml b/pkg/alpine-base/build.yml index 510082fab16..60937960d20 100644 --- a/pkg/alpine-base/build.yml +++ b/pkg/alpine-base/build.yml @@ -1,3 +1,6 @@ image: eve-alpine-base org: lfedge network: yes + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/alpine/build.yml b/pkg/alpine/build.yml index d1e959afbe0..79dd1b6c2a4 100644 --- a/pkg/alpine/build.yml +++ b/pkg/alpine/build.yml @@ -1,3 +1,6 @@ image: eve-alpine org: lfedge network: yes + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/apparmor/Dockerfile b/pkg/apparmor/Dockerfile index 04dff8cecd9..9befb9f6cd4 100644 --- a/pkg/apparmor/Dockerfile +++ b/pkg/apparmor/Dockerfile @@ -3,7 +3,9 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS linux-headers musl-dev musl-utils musl-libintl git gcc g++ \ autoconf automake libtool make flex bison bash sed gettext ENV PKGS alpine-baselayout diff --git a/pkg/apparmor/build.yml b/pkg/apparmor/build.yml index be4fcc63d3d..de8564e3d67 100644 --- a/pkg/apparmor/build.yml +++ b/pkg/apparmor/build.yml @@ -5,3 +5,6 @@ config: - /sys:/sys capabilities: - all + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/bpftrace/Dockerfile b/pkg/bpftrace/Dockerfile index 3663efc1fcc..cafe79c7e59 100644 --- a/pkg/bpftrace/Dockerfile +++ b/pkg/bpftrace/Dockerfile @@ -2,7 +2,10 @@ # Copyright (c) 2024 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build + +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS make gcc g++ git perl linux-headers musl-dev cmake zlib-dev bcc-dev libbpf-dev cereal flex bison llvm13-libs llvm13-dev llvm13-static clang-dev clang-static pahole gtest-dev bash diff --git a/pkg/bpftrace/build.yml b/pkg/bpftrace/build.yml index e1eb21428a9..0692b133ade 100644 --- a/pkg/bpftrace/build.yml +++ b/pkg/bpftrace/build.yml @@ -4,3 +4,6 @@ org: lfedge image: eve-bpftrace network: no + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/bsp-imx/Dockerfile b/pkg/bsp-imx/Dockerfile index b9d9df4aae0..81a88b6b387 100644 --- a/pkg/bsp-imx/Dockerfile +++ b/pkg/bsp-imx/Dockerfile @@ -3,27 +3,28 @@ # use the same set of packages for simplicity ARG BUILD_PKGS_BASE="bash binutils-dev build-base bc bison flex openssl-dev util-linux-dev swig gnutls-dev perl python3 python3-dev py3-setuptools py3-pycryptodome py3-elftools" -# we use the same image in several places -ARG EVE_ALPINE_IMAGE=lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 +ARG REL_HASH_LFEDGE_EVE_ALPINE +ARG REL_HASH_LFEDGE_EVE_OPTEE_OS +ARG REL_HASH_LFEDGE_EVE_CROSS_COMPILERS # OPTEE-OS images -FROM lfedge/eve-optee-os:9224bc23bc238d0f499dadb134de32dc3a2abdf9 AS optee-os +FROM ${REL_HASH_LFEDGE_EVE_OPTEE_OS} AS optee-os # hadolint ignore=DL3006 -FROM ${EVE_ALPINE_IMAGE} AS build-native +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build-native ARG BUILD_PKGS_BASE RUN BUILD_PKGS="${BUILD_PKGS_BASE}" eve-alpine-deploy.sh # hadolint ignore=DL3029 -FROM --platform=${BUILDPLATFORM} ${EVE_ALPINE_IMAGE} AS build-cross +FROM --platform=${BUILDPLATFORM} ${REL_HASH_LFEDGE_EVE_ALPINE} AS build-cross ARG BUILD_PKGS_BASE RUN BUILD_PKGS="${BUILD_PKGS_BASE}" eve-alpine-deploy.sh # hadolint ignore=DL3029 -FROM --platform=${BUILDPLATFORM} lfedge/eve-cross-compilers:f476a79bcd086759592a105a49f9ed5bfa2c4ffa AS cross-compilers +FROM --platform=${BUILDPLATFORM} ${REL_HASH_LFEDGE_EVE_CROSS_COMPILERS} AS cross-compilers # will use several packages from target arch and copy them to sysroot -FROM ${EVE_ALPINE_IMAGE} AS cross-compile-libs +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS cross-compile-libs ENV PKGS="musl-dev libgcc libintl libuuid libtirpc libblkid" RUN eve-alpine-deploy.sh diff --git a/pkg/bsp-imx/build.yml b/pkg/bsp-imx/build.yml index 6f683fb2086..80df34b029a 100644 --- a/pkg/bsp-imx/build.yml +++ b/pkg/bsp-imx/build.yml @@ -1,2 +1,5 @@ image: eve-bsp-imx org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/cross-compilers/Dockerfile b/pkg/cross-compilers/Dockerfile index d59509bf4bf..467474ef666 100644 --- a/pkg/cross-compilers/Dockerfile +++ b/pkg/cross-compilers/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build-base +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build-base ENV BUILD_PKGS abuild curl tar make linux-headers patch g++ git gcc ncurses-dev autoconf file sudo RUN eve-alpine-deploy.sh @@ -47,7 +49,7 @@ FROM build-base AS build-armhf # we do not support cross-compilers for riscv64 host # as gcc-gnat is not available on riscv64 # we cannot build cross-compilers without additional patches -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build-riscv64 +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build-riscv64 FROM build-${TARGETARCH} AS build RUN mkdir -p /packages diff --git a/pkg/cross-compilers/build.yml b/pkg/cross-compilers/build.yml index b4559fc36d9..cb0dbd35c08 100644 --- a/pkg/cross-compilers/build.yml +++ b/pkg/cross-compilers/build.yml @@ -1,2 +1,5 @@ image: eve-cross-compilers org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/debug/Dockerfile b/pkg/debug/Dockerfile index 69998d8f381..99effa6a03d 100644 --- a/pkg/debug/Dockerfile +++ b/pkg/debug/Dockerfile @@ -3,14 +3,18 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 +ARG REL_HASH_LFEDGE_EVE_ALPINE +ARG REL_HASH_LFEDGE_EVE_BPFTRACE +ARG REL_HASH_LFEDGE_EVE_RECOVERTPM + # for debug container we need to build our own copy of musl # with -fno-omit-frame-pointer to make sure that perf(1) # has a fast path for stack unwinding. This also happens # to be a perfect place to put any other kind of debug info # into the package: see abuild/etc/abuild.conf. -FROM lfedge/eve-recovertpm:f74dd4a31b7022455446ecc13c209bf8a1c4dcb4 AS recovertpm -FROM lfedge/eve-bpftrace:c08d714db34b7cde90d20c56e74d2c11afe483df AS bpftrace -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +FROM ${REL_HASH_LFEDGE_EVE_RECOVERTPM} AS recovertpm +FROM ${REL_HASH_LFEDGE_EVE_BPFTRACE} AS bpftrace +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS="abuild curl tar make linux-headers patch g++ git gcc gpg ncurses-dev autoconf openssl-dev zlib-dev" # Feel free to add additional packages here, but be aware that # EVE's rootfs image can be no larger than 300Mb (and don't diff --git a/pkg/debug/build.yml b/pkg/debug/build.yml index da647ba37e1..d42cf5511ae 100644 --- a/pkg/debug/build.yml +++ b/pkg/debug/build.yml @@ -30,3 +30,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/dnsmasq/Dockerfile b/pkg/dnsmasq/Dockerfile index d9f59e701be..a3d405b967c 100644 --- a/pkg/dnsmasq/Dockerfile +++ b/pkg/dnsmasq/Dockerfile @@ -1,7 +1,9 @@ # Copyright (c) 2025 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS gcc make patch libc-dev linux-headers tar xz coreutils RUN eve-alpine-deploy.sh diff --git a/pkg/dnsmasq/build.yml b/pkg/dnsmasq/build.yml index 2c35e0846ea..97db60a1a1f 100644 --- a/pkg/dnsmasq/build.yml +++ b/pkg/dnsmasq/build.yml @@ -1,2 +1,5 @@ image: eve-dnsmasq org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/dom0-ztools/Dockerfile b/pkg/dom0-ztools/Dockerfile index bde01235436..7d069fd7968 100644 --- a/pkg/dom0-ztools/Dockerfile +++ b/pkg/dom0-ztools/Dockerfile @@ -1,5 +1,8 @@ # syntax=docker/dockerfile-upstream:1.5.0-rc2-labs -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS zfs + +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS zfs ENV BUILD_PKGS git patch ca-certificates util-linux build-base gettext-dev libtirpc-dev automake autoconf \ libtool linux-headers attr-dev e2fsprogs-dev glib-dev openssl-dev util-linux-dev coreutils ENV PKGS ca-certificates util-linux libintl libuuid libtirpc libblkid libcrypto1.1 zlib diff --git a/pkg/dom0-ztools/build.yml b/pkg/dom0-ztools/build.yml index 6b033cb6c10..422e203608a 100644 --- a/pkg/dom0-ztools/build.yml +++ b/pkg/dom0-ztools/build.yml @@ -1,2 +1,5 @@ org: lfedge image: eve-dom0-ztools + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/edgeview/Dockerfile b/pkg/edgeview/Dockerfile index 0580974dbab..9f88d0aae43 100644 --- a/pkg/edgeview/Dockerfile +++ b/pkg/edgeview/Dockerfile @@ -1,6 +1,9 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build + +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS git ENV PKGS alpine-baselayout musl-utils iproute2 iptables RUN eve-alpine-deploy.sh diff --git a/pkg/edgeview/build.yml b/pkg/edgeview/build.yml index edcc34cadeb..9ce69dfee00 100644 --- a/pkg/edgeview/build.yml +++ b/pkg/edgeview/build.yml @@ -18,3 +18,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/eve/Dockerfile.in b/pkg/eve/Dockerfile.in index 1599dfd64df..bd4e4ca8c6d 100644 --- a/pkg/eve/Dockerfile.in +++ b/pkg/eve/Dockerfile.in @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 as tools +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} as tools ENV PKGS="qemu-img tar u-boot-tools coreutils dosfstools" RUN eve-alpine-deploy.sh diff --git a/pkg/eve/build.yml b/pkg/eve/build.yml index 82f3abd5f74..ae402140114 100644 --- a/pkg/eve/build.yml +++ b/pkg/eve/build.yml @@ -1,2 +1,5 @@ image: eve org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/external-boot-image/build.yml b/pkg/external-boot-image/build.yml index 471c106398d..629b5daf5cf 100644 --- a/pkg/external-boot-image/build.yml +++ b/pkg/external-boot-image/build.yml @@ -4,3 +4,6 @@ # SPDX-License-Identifier: Apache-2.0 org: lfedge image: eve-external-boot-image + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/fscrypt/Dockerfile b/pkg/fscrypt/Dockerfile index 4ee49bd81d6..17db8fa0599 100644 --- a/pkg/fscrypt/Dockerfile +++ b/pkg/fscrypt/Dockerfile @@ -2,7 +2,9 @@ # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build-base +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build-base FROM build-base AS build-amd64 FROM build-base AS build-arm64 diff --git a/pkg/fscrypt/build.yml b/pkg/fscrypt/build.yml index 63982dd4a83..d04cbb858d2 100644 --- a/pkg/fscrypt/build.yml +++ b/pkg/fscrypt/build.yml @@ -5,4 +5,7 @@ org: lfedge image: eve-fscrypt # we allow network in building fscrypt because we need it to downlaod go modules, # and it is limited to just this single target output. -network: yes \ No newline at end of file +network: yes + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* \ No newline at end of file diff --git a/pkg/fw/Dockerfile b/pkg/fw/Dockerfile index 8ed1982af83..2a16dc49be1 100644 --- a/pkg/fw/Dockerfile +++ b/pkg/fw/Dockerfile @@ -1,7 +1,9 @@ # syntax=docker/dockerfile-upstream:1.5.0-rc2-labs + +ARG REL_HASH_LFEDGE_EVE_ALPINE ARG PLATFORM=generic -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build-base +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build-base ARG TARGETARCH @@ -96,7 +98,7 @@ ADD https://hailo-hailort.s3.eu-west-2.amazonaws.com/Hailo8/${HAILO_FW_VERSION}/ # generate initrd for Intel's and AMD's microcode # it makes sense only for x86_64 platform -FROM --platform=${TARGETPLATFORM} lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS ucode-build-common +FROM --platform=${TARGETPLATFORM} ${REL_HASH_LFEDGE_EVE_ALPINE} AS ucode-build-common RUN mkdir -p /boot /tmp/ucode/intel /tmp/ucode/amd /usr/share/licenses/ucode FROM ucode-build-common AS ucode-build-amd64 @@ -137,7 +139,7 @@ FROM ucode-build-common AS ucode-build-arm64 FROM ucode-build-common AS ucode-build-riscv64 FROM ucode-build-${TARGETARCH} AS ucode-build -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS compactor-common +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS compactor-common ENTRYPOINT [] WORKDIR / COPY --from=build /lib/firmware/regulatory* /lib/firmware/ @@ -209,7 +211,7 @@ RUN if [ "$TARGETARCH" = "arm64" ]; then \ fi -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS compactor-full +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS compactor-full # get all possible FW COPY --from=build /lib/firmware/ /lib/firmware/ diff --git a/pkg/fw/build-evaluation-generic.yml b/pkg/fw/build-evaluation-generic.yml index 98923c5166f..7c4847d1a95 100644 --- a/pkg/fw/build-evaluation-generic.yml +++ b/pkg/fw/build-evaluation-generic.yml @@ -9,3 +9,4 @@ org: lfedge tag: "{{.Hash}}-generic" buildArgs: - PLATFORM=generic + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/fw/build-evaluation.yml b/pkg/fw/build-evaluation.yml index a4baa25d590..0f6aecb19ef 100644 --- a/pkg/fw/build-evaluation.yml +++ b/pkg/fw/build-evaluation.yml @@ -9,3 +9,4 @@ org: lfedge tag: "{{.Hash}}-evaluation" buildArgs: - PLATFORM=evaluation + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/fw/build-nvidia-jp5.yml b/pkg/fw/build-nvidia-jp5.yml index 725da695c3f..49069a793aa 100644 --- a/pkg/fw/build-nvidia-jp5.yml +++ b/pkg/fw/build-nvidia-jp5.yml @@ -9,3 +9,4 @@ org: lfedge tag: "{{.Hash}}-nvidia-jp5" buildArgs: - PLATFORM=nvidia-jp5 + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/fw/build-nvidia-jp6.yml b/pkg/fw/build-nvidia-jp6.yml index 74b168a7fb7..a6025335af2 100644 --- a/pkg/fw/build-nvidia-jp6.yml +++ b/pkg/fw/build-nvidia-jp6.yml @@ -9,3 +9,4 @@ org: lfedge tag: "{{.Hash}}-nvidia-jp6" buildArgs: - PLATFORM=nvidia-jp6 + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/fw/build.yml b/pkg/fw/build.yml index 56f7320989f..418cdc731a4 100644 --- a/pkg/fw/build.yml +++ b/pkg/fw/build.yml @@ -3,3 +3,4 @@ org: lfedge tag: "{{.Hash}}-generic" buildArgs: - PLATFORM=generic + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/gpt-tools/Dockerfile b/pkg/gpt-tools/Dockerfile index 53f891da884..a2b3e30c4c3 100644 --- a/pkg/gpt-tools/Dockerfile +++ b/pkg/gpt-tools/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS gcc make file patch libc-dev util-linux-dev linux-headers openssl-dev g++ tar RUN eve-alpine-deploy.sh diff --git a/pkg/gpt-tools/build.yml b/pkg/gpt-tools/build.yml index e8c55e497cc..d5ba05636b1 100644 --- a/pkg/gpt-tools/build.yml +++ b/pkg/gpt-tools/build.yml @@ -1,2 +1,5 @@ image: eve-gpt-tools org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/grub/Dockerfile b/pkg/grub/Dockerfile index 2f936d5cb8f..f880e90e721 100644 --- a/pkg/grub/Dockerfile +++ b/pkg/grub/Dockerfile @@ -2,7 +2,9 @@ # Copyright (c) 2025 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS grub-build-base +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS grub-build-base ENV BUILD_PKGS="automake \ make \ bison \ diff --git a/pkg/grub/build.yml b/pkg/grub/build.yml index cf928cf63ce..e5e38d4d552 100644 --- a/pkg/grub/build.yml +++ b/pkg/grub/build.yml @@ -1,2 +1,5 @@ org: lfedge image: eve-grub + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/guacd/Dockerfile b/pkg/guacd/Dockerfile index 18e8d86746e..6de9eb6b83d 100644 --- a/pkg/guacd/Dockerfile +++ b/pkg/guacd/Dockerfile @@ -1,6 +1,9 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build + +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS cairo-dev jpeg-dev libpng-dev gcc make libc-dev openssl-dev libvncserver-dev file patch ENV PKGS alpine-baselayout musl-utils libtasn1-progs p11-kit cairo jpeg libpng libvncserver RUN eve-alpine-deploy.sh diff --git a/pkg/guacd/build.yml b/pkg/guacd/build.yml index 86f0db62ba5..1c86e58b240 100644 --- a/pkg/guacd/build.yml +++ b/pkg/guacd/build.yml @@ -12,3 +12,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/installer/Dockerfile b/pkg/installer/Dockerfile index 4777e65063e..0da4b14671b 100644 --- a/pkg/installer/Dockerfile +++ b/pkg/installer/Dockerfile @@ -2,6 +2,9 @@ # Copyright (c) 2024 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 +ARG REL_HASH_LFEDGE_EVE_ALPINE +ARG REL_HASH_LFEDGE_EVE_DEBUG + # Interactive mode for the installer FROM --platform=$BUILDPLATFORM lfedge/eve-rust:1.84.1 AS rust-host ARG TARGETARCH @@ -27,10 +30,10 @@ RUN cargo sbom > sbom.spdx.json RUN cp "/usr/local/my-installer/target/$CARGO_BUILD_TARGET/release/installer" /usr/local/my-installer/target/installer -FROM lfedge/eve-debug:244ebacb4055d54c50610c407b910b4143506172 AS debug +FROM ${REL_HASH_LFEDGE_EVE_DEBUG} AS debug # Dockerfile to build installer img initrd -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build SHELL ["/bin/ash", "-eo", "pipefail", "-c"] ENV BUILD_PKGS="mkinitfs grep patch make coreutils musl-dev gcc g++ perl \ autoconf automake libtool file bsd-compat-headers libc-dev \ diff --git a/pkg/installer/build.yml b/pkg/installer/build.yml index 35b1b25e4d4..2c8dd9d1cf2 100644 --- a/pkg/installer/build.yml +++ b/pkg/installer/build.yml @@ -19,3 +19,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/ipxe/Dockerfile b/pkg/ipxe/Dockerfile index c7b580930ea..918be948a6a 100644 --- a/pkg/ipxe/Dockerfile +++ b/pkg/ipxe/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS="patch make gcc perl util-linux-dev git mtools linux-headers musl-dev xz-dev" RUN eve-alpine-deploy.sh diff --git a/pkg/ipxe/build.yml b/pkg/ipxe/build.yml index a56b5e32a45..aa015a0aa36 100644 --- a/pkg/ipxe/build.yml +++ b/pkg/ipxe/build.yml @@ -1,2 +1,5 @@ image: eve-ipxe org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/kdump/Dockerfile b/pkg/kdump/Dockerfile index 6b376fc4b95..f7bdc052ed3 100644 --- a/pkg/kdump/Dockerfile +++ b/pkg/kdump/Dockerfile @@ -1,6 +1,9 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build + +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS patch curl make gcc perl util-linux-dev git mtools linux-headers musl-dev xz-dev elfutils-dev libbz2 ENV PKGS xz-libs elfutils-dev libbz2 diff --git a/pkg/kdump/build.yml b/pkg/kdump/build.yml index e8b60452765..49b51fd0709 100644 --- a/pkg/kdump/build.yml +++ b/pkg/kdump/build.yml @@ -11,3 +11,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/kexec/Dockerfile b/pkg/kexec/Dockerfile index 271c268073c..50985732a5b 100644 --- a/pkg/kexec/Dockerfile +++ b/pkg/kexec/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS patch curl make gcc perl util-linux-dev git mtools linux-headers musl-dev xz-dev elfutils-dev libbz2 ENV PKGS xz-libs util-linux elfutils-dev libbz2 diff --git a/pkg/kexec/build.yml b/pkg/kexec/build.yml index 4e41f71f6cf..dc681ddf337 100644 --- a/pkg/kexec/build.yml +++ b/pkg/kexec/build.yml @@ -1,2 +1,5 @@ image: eve-kexec org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/kube/Dockerfile b/pkg/kube/Dockerfile index d9ee41dd6a0..02a662a4f97 100644 --- a/pkg/kube/Dockerfile +++ b/pkg/kube/Dockerfile @@ -1,6 +1,8 @@ # syntax=docker/dockerfile-upstream:1.5.0-rc2-labs -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV PKGS alpine-baselayout musl-utils iproute2 iptables curl openrc \ open-iscsi libvirt libvirt-client util-linux grep findutils jq \ cni-plugins nfs-utils diff --git a/pkg/kube/build.yml b/pkg/kube/build.yml index fe3d69b0360..4b6f2607655 100644 --- a/pkg/kube/build.yml +++ b/pkg/kube/build.yml @@ -21,3 +21,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/kvm-tools/Dockerfile b/pkg/kvm-tools/Dockerfile index 5a0be58cd4d..5b24acf7670 100644 --- a/pkg/kvm-tools/Dockerfile +++ b/pkg/kvm-tools/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build # Building qemu in strip-down mirovm only mode: # qemu 5.1 dependencies: python3 glib-dev pixman-dev # qemu 5.2+ dependencies: py3-setuptools bash perl diff --git a/pkg/kvm-tools/build.yml b/pkg/kvm-tools/build.yml index 10964e340c0..1bbb8680481 100644 --- a/pkg/kvm-tools/build.yml +++ b/pkg/kvm-tools/build.yml @@ -17,3 +17,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/measure-config/Dockerfile b/pkg/measure-config/Dockerfile index 8ec41014236..a0805e3e3fa 100644 --- a/pkg/measure-config/Dockerfile +++ b/pkg/measure-config/Dockerfile @@ -1,6 +1,9 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build + +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS git ENV PKGS alpine-baselayout musl-utils RUN eve-alpine-deploy.sh diff --git a/pkg/measure-config/build.yml b/pkg/measure-config/build.yml index a61b3c109d1..32c6c05aa9f 100644 --- a/pkg/measure-config/build.yml +++ b/pkg/measure-config/build.yml @@ -17,3 +17,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/memory-monitor/Dockerfile b/pkg/memory-monitor/Dockerfile index 36a51dd37c2..a38e7b56f6b 100644 --- a/pkg/memory-monitor/Dockerfile +++ b/pkg/memory-monitor/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS memory-monitor-build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS memory-monitor-build ENV BUILD_PKGS gcc musl-dev make linux-headers cmake build-base ENV PKGS alpine-baselayout curl strace diff --git a/pkg/memory-monitor/build.yml b/pkg/memory-monitor/build.yml index 68d88563e75..6aae4256896 100644 --- a/pkg/memory-monitor/build.yml +++ b/pkg/memory-monitor/build.yml @@ -17,3 +17,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/mkconf/Dockerfile b/pkg/mkconf/Dockerfile index 0c99abd3f55..5ce87a8ab47 100644 --- a/pkg/mkconf/Dockerfile +++ b/pkg/mkconf/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV PKGS mtools dosfstools RUN eve-alpine-deploy.sh diff --git a/pkg/mkconf/build.yml b/pkg/mkconf/build.yml index ecc9cd8a83e..7e497b517a2 100644 --- a/pkg/mkconf/build.yml +++ b/pkg/mkconf/build.yml @@ -1,2 +1,5 @@ org: lfedge image: eve-mkconf + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/mkimage-iso-efi/Dockerfile b/pkg/mkimage-iso-efi/Dockerfile index 97606ff3117..5094a681177 100644 --- a/pkg/mkimage-iso-efi/Dockerfile +++ b/pkg/mkimage-iso-efi/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV PKGS="dosfstools libarchive-tools binutils mtools xorriso mkinitfs squashfs-tools" RUN eve-alpine-deploy.sh diff --git a/pkg/mkimage-iso-efi/build.yml b/pkg/mkimage-iso-efi/build.yml index 8ac49365957..303be0d2646 100644 --- a/pkg/mkimage-iso-efi/build.yml +++ b/pkg/mkimage-iso-efi/build.yml @@ -1,2 +1,5 @@ image: eve-mkimage-iso-efi org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/mkimage-raw-efi/Dockerfile b/pkg/mkimage-raw-efi/Dockerfile index 0dab26cbac0..2e7b231e7b8 100644 --- a/pkg/mkimage-raw-efi/Dockerfile +++ b/pkg/mkimage-raw-efi/Dockerfile @@ -5,7 +5,10 @@ # /EFI/BOOT/grub.cfg - Chainloads main bootloader # /UsbInvocationScript.txt - Enables USB boot on Dell 3000 series # -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build + +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build SHELL ["/bin/ash", "-eo", "pipefail", "-c"] ENV BUILD_PKGS="grep patch git make gcc linux-headers musl-dev autoconf automake pkgconfig kmod-dev util-linux-dev cryptsetup-dev lddtree libgcc mkinitfs" ENV PKGS="mtools dosfstools libarchive-tools sgdisk e2fsprogs util-linux squashfs-tools coreutils tar dmidecode \ diff --git a/pkg/mkimage-raw-efi/build.yml b/pkg/mkimage-raw-efi/build.yml index 2bfd68ec609..d4adf1037f4 100644 --- a/pkg/mkimage-raw-efi/build.yml +++ b/pkg/mkimage-raw-efi/build.yml @@ -1,2 +1,5 @@ org: lfedge image: eve-mkimage-raw-efi + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/mkrootfs-ext4/Dockerfile b/pkg/mkrootfs-ext4/Dockerfile index 9e649063d49..4dd07efef67 100644 --- a/pkg/mkrootfs-ext4/Dockerfile +++ b/pkg/mkrootfs-ext4/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV PKGS dosfstools libarchive-tools binutils mtools sfdisk sgdisk xfsprogs \ e2fsprogs util-linux coreutils multipath-tools squashfs-tools diff --git a/pkg/mkrootfs-ext4/build.yml b/pkg/mkrootfs-ext4/build.yml index 0c20db93e2d..84d91cdb388 100644 --- a/pkg/mkrootfs-ext4/build.yml +++ b/pkg/mkrootfs-ext4/build.yml @@ -1,2 +1,5 @@ org: lfedge image: eve-mkrootfs-ext4 + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/mkrootfs-squash/Dockerfile b/pkg/mkrootfs-squash/Dockerfile index 4371f3f3a35..552132ea9df 100644 --- a/pkg/mkrootfs-squash/Dockerfile +++ b/pkg/mkrootfs-squash/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV PKGS dosfstools libarchive-tools binutils mtools sfdisk sgdisk \ xfsprogs e2fsprogs util-linux coreutils multipath-tools squashfs-tools diff --git a/pkg/mkrootfs-squash/build.yml b/pkg/mkrootfs-squash/build.yml index b6dd394db49..2787da50a7e 100644 --- a/pkg/mkrootfs-squash/build.yml +++ b/pkg/mkrootfs-squash/build.yml @@ -1,2 +1,5 @@ org: lfedge image: eve-mkrootfs-squash + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/monitor/Dockerfile b/pkg/monitor/Dockerfile index d3918cc3bb3..4c3f829b160 100644 --- a/pkg/monitor/Dockerfile +++ b/pkg/monitor/Dockerfile @@ -1,6 +1,8 @@ # Copyright (c) 2024 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 +ARG REL_HASH_LFEDGE_EVE_ALPINE + ARG MONITOR_RS_VERSION=v0.6.0 ARG RUST_VERSION=lfedge/eve-rust:1.85.1-2 FROM --platform=$BUILDPLATFORM ${RUST_VERSION} AS toolchain-base @@ -48,8 +50,7 @@ RUN cargo build --release RUN cargo sbom > sbom.spdx.json RUN cp /app/target/$CARGO_BUILD_TARGET/release/monitor /app/target/ - -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS runtime +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS runtime ENV PKGS="kbd pciutils usbutils" RUN eve-alpine-deploy.sh diff --git a/pkg/monitor/build.yml b/pkg/monitor/build.yml index 2019432b3ff..b5f39b26039 100644 --- a/pkg/monitor/build.yml +++ b/pkg/monitor/build.yml @@ -55,3 +55,6 @@ config: capabilities: - all rootfsPropagation: shared + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/newlog/Dockerfile b/pkg/newlog/Dockerfile index 9696a37751d..86208e5a88a 100644 --- a/pkg/newlog/Dockerfile +++ b/pkg/newlog/Dockerfile @@ -1,6 +1,9 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build + +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS git ENV PKGS coreutils RUN eve-alpine-deploy.sh diff --git a/pkg/newlog/build.yml b/pkg/newlog/build.yml index 7f08bf8e2c2..47e75ed4cb2 100644 --- a/pkg/newlog/build.yml +++ b/pkg/newlog/build.yml @@ -13,3 +13,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/node-exporter/build.yml b/pkg/node-exporter/build.yml index 2654fe9f1d3..43461985abb 100644 --- a/pkg/node-exporter/build.yml +++ b/pkg/node-exporter/build.yml @@ -11,3 +11,6 @@ config: - /persist:/persist net: host pid: host + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/nvidia/Dockerfile b/pkg/nvidia/Dockerfile index d8d86efd3f0..997086b0c7b 100644 --- a/pkg/nvidia/Dockerfile +++ b/pkg/nvidia/Dockerfile @@ -3,9 +3,10 @@ # Copyright (c) 2024 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 +ARG REL_HASH_LFEDGE_EVE_ALPINE ARG PLATFORM=generic -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build-base +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build-base ENV BUILD_PKGS="autoconf automake build-base coreutils gettext git glib-dev libtool libmd-dev ncurses-dev tar xz-dev yq zstd-dev" RUN eve-alpine-deploy.sh diff --git a/pkg/nvidia/build-nvidia-jp6.yml b/pkg/nvidia/build-nvidia-jp6.yml index e3d81a52db3..fec0f337f6e 100644 --- a/pkg/nvidia/build-nvidia-jp6.yml +++ b/pkg/nvidia/build-nvidia-jp6.yml @@ -9,3 +9,4 @@ image: eve-nvidia tag: "{{.Hash}}-nvidia-jp6" buildArgs: - PLATFORM=nvidia-jp6 + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/nvidia/build.yml b/pkg/nvidia/build.yml index a02e1d8fcac..c41c604a1b9 100644 --- a/pkg/nvidia/build.yml +++ b/pkg/nvidia/build.yml @@ -8,3 +8,4 @@ image: eve-nvidia tag: "{{.Hash}}-nvidia-jp5" buildArgs: - PLATFORM=nvidia-jp5 + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/optee-os/Dockerfile b/pkg/optee-os/Dockerfile index 8f47adc9d3b..cdbdcc48dbd 100644 --- a/pkg/optee-os/Dockerfile +++ b/pkg/optee-os/Dockerfile @@ -1,25 +1,25 @@ # syntax=docker/dockerfile-upstream:1.5.0-rc2-labs +ARG REL_HASH_LFEDGE_EVE_ALPINE +ARG REL_HASH_LFEDGE_EVE_CROSS_COMPILERS + # use the same set of packages for simplicity ARG BUILD_PKGS_BASE="autoconf automake bash binutils binutils-dev build-base bc bison curl dtc expat flex openssl-dev util-linux-dev swig gnutls-dev perl python3 python3-dev py3-setuptools py3-pycryptodome py3-elftools py3-cryptography" -# we use the same image in several places -ARG EVE_ALPINE_IMAGE=lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 - -FROM ${EVE_ALPINE_IMAGE} AS build-native +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build-native ARG BUILD_PKGS_BASE RUN BUILD_PKGS="${BUILD_PKGS_BASE}" eve-alpine-deploy.sh # hadolint ignore=DL3029 -FROM --platform=${BUILDPLATFORM} ${EVE_ALPINE_IMAGE} AS build-cross +FROM --platform=${BUILDPLATFORM} ${REL_HASH_LFEDGE_EVE_ALPINE} AS build-cross ARG BUILD_PKGS_BASE RUN BUILD_PKGS="${BUILD_PKGS_BASE}" eve-alpine-deploy.sh # hadolint ignore=DL3029 -FROM --platform=${BUILDPLATFORM} lfedge/eve-cross-compilers:f476a79bcd086759592a105a49f9ed5bfa2c4ffa AS cross-compilers +FROM --platform=${BUILDPLATFORM} ${REL_HASH_LFEDGE_EVE_CROSS_COMPILERS} AS cross-compilers # will use several packages from target arch and copy them to sysroot -FROM ${EVE_ALPINE_IMAGE} AS cross-compile-libs +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS cross-compile-libs ENV PKGS musl-dev libgcc libintl libuuid libtirpc libblkid libattr RUN eve-alpine-deploy.sh diff --git a/pkg/optee-os/build.yml b/pkg/optee-os/build.yml index 5c707162acb..cd48202b2bd 100644 --- a/pkg/optee-os/build.yml +++ b/pkg/optee-os/build.yml @@ -1,2 +1,5 @@ image: eve-optee-os org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/pillar/build-dev.yml b/pkg/pillar/build-dev.yml index 768d4eab4bb..a369ac1a16d 100644 --- a/pkg/pillar/build-dev.yml +++ b/pkg/pillar/build-dev.yml @@ -31,3 +31,4 @@ config: - 2345:2345 buildArgs: - DEV=y + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/pillar/build-kubevirt-dev.yml b/pkg/pillar/build-kubevirt-dev.yml index 9a260d0a813..fd82b889372 100644 --- a/pkg/pillar/build-kubevirt-dev.yml +++ b/pkg/pillar/build-kubevirt-dev.yml @@ -30,3 +30,4 @@ config: buildArgs: - HV=kubevirt - DEV=y + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/pillar/build-rstats.yml b/pkg/pillar/build-rstats.yml index 45dded43d36..901022af283 100644 --- a/pkg/pillar/build-rstats.yml +++ b/pkg/pillar/build-rstats.yml @@ -25,3 +25,4 @@ buildArgs: - RSTATS=y - RSTATS_TAG=pillar - RSTATS_ENDPOINT=localhost:8125 + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/recovertpm/Dockerfile b/pkg/recovertpm/Dockerfile index ed4c0006488..aabb356ebdf 100644 --- a/pkg/recovertpm/Dockerfile +++ b/pkg/recovertpm/Dockerfile @@ -1,7 +1,9 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build # build the tpm-recovery tool WORKDIR / diff --git a/pkg/recovertpm/build.yml b/pkg/recovertpm/build.yml index dc773470fd0..e4150d3c588 100644 --- a/pkg/recovertpm/build.yml +++ b/pkg/recovertpm/build.yml @@ -3,3 +3,6 @@ # SPDX-License-Identifier: Apache-2.0 org: lfedge image: eve-recovertpm + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/rngd/Dockerfile b/pkg/rngd/Dockerfile index 483f1991f6b..24382b6feef 100644 --- a/pkg/rngd/Dockerfile +++ b/pkg/rngd/Dockerfile @@ -1,6 +1,9 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build + +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS gcc musl-dev linux-headers RUN eve-alpine-deploy.sh diff --git a/pkg/rngd/build.yml b/pkg/rngd/build.yml index cfe055072fe..3f301dd3100 100644 --- a/pkg/rngd/build.yml +++ b/pkg/rngd/build.yml @@ -7,3 +7,6 @@ config: readonly: true net: new ipc: new + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/sources/Dockerfile b/pkg/sources/Dockerfile index 9794d65cb83..c445cb141ab 100644 --- a/pkg/sources/Dockerfile +++ b/pkg/sources/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS tools +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS tools COPY collected_sources.tar.gz /var/collected_sources.tar.gz RUN mkdir -p /var/sources && tar -C /var/sources -xzf /var/collected_sources.tar.gz diff --git a/pkg/sources/build.yml b/pkg/sources/build.yml index c099799a31d..4d5f067aecd 100644 --- a/pkg/sources/build.yml +++ b/pkg/sources/build.yml @@ -1,2 +1,5 @@ image: eve-sources org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/storage-init/Dockerfile b/pkg/storage-init/Dockerfile index 12b49703d4f..26bedb75a4e 100644 --- a/pkg/storage-init/Dockerfile +++ b/pkg/storage-init/Dockerfile @@ -1,7 +1,9 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV PKGS="alpine-baselayout musl-utils bash glib squashfs-tools util-linux e2fsprogs e2fsprogs-extra keyutils dosfstools coreutils sgdisk smartmontools" RUN eve-alpine-deploy.sh diff --git a/pkg/storage-init/build.yml b/pkg/storage-init/build.yml index d88b70cb9a1..87a78ccb516 100644 --- a/pkg/storage-init/build.yml +++ b/pkg/storage-init/build.yml @@ -20,3 +20,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/u-boot/Dockerfile b/pkg/u-boot/Dockerfile index 32253562fff..30a8762509f 100644 --- a/pkg/u-boot/Dockerfile +++ b/pkg/u-boot/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build-base +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build-base ENV BUILD_PKGS bash binutils-dev build-base bc bison flex openssl-dev python3 swig dtc ENV BUILD_PKGS_amd64 python3-dev py-pip RUN eve-alpine-deploy.sh diff --git a/pkg/u-boot/build.yml b/pkg/u-boot/build.yml index 0e28d65f067..3687034c7f8 100644 --- a/pkg/u-boot/build.yml +++ b/pkg/u-boot/build.yml @@ -1,2 +1,5 @@ image: eve-u-boot org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/udev/Dockerfile b/pkg/udev/Dockerfile index dabbe2ac2a9..e2de6adebb1 100644 --- a/pkg/udev/Dockerfile +++ b/pkg/udev/Dockerfile @@ -3,7 +3,9 @@ # Copyright (c) 2024 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV PKGS udev RUN eve-alpine-deploy.sh diff --git a/pkg/udev/build.yml b/pkg/udev/build.yml index 86d6c538627..0ee6dad7554 100644 --- a/pkg/udev/build.yml +++ b/pkg/udev/build.yml @@ -1,2 +1,5 @@ image: eve-udev org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/uefi/Dockerfile b/pkg/uefi/Dockerfile index d407e997d41..93cc8a192cd 100644 --- a/pkg/uefi/Dockerfile +++ b/pkg/uefi/Dockerfile @@ -10,7 +10,10 @@ # git clone https://git.linaro.org/uefi/uefi-tools.git # ./uefi-tools/edk2-build.sh -b DEBUG -b RELEASE all # -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build + +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS make gcc g++ python3 libuuid nasm util-linux-dev bash git util-linux patch ENV BUILD_PKGS_amd64 iasl ENV BUILD_PKGS_arm64 iasl diff --git a/pkg/uefi/build.yml b/pkg/uefi/build.yml index 19c0b0ebb6c..607eb53532e 100644 --- a/pkg/uefi/build.yml +++ b/pkg/uefi/build.yml @@ -1,2 +1,5 @@ image: eve-uefi org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/vector/Dockerfile b/pkg/vector/Dockerfile index 187ed16e0b5..42239745ea4 100644 --- a/pkg/vector/Dockerfile +++ b/pkg/vector/Dockerfile @@ -1,6 +1,7 @@ # Copyright (c) 2025 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 +ARG REL_HASH_LFEDGE_EVE_ALPINE ARG RUST_VERSION=lfedge/eve-rust:1.85.1-2 ARG VECTOR_FEATURES='--no-default-features --features \ sources-socket,\ @@ -60,7 +61,7 @@ RUN strip "/app/target/$CARGO_BUILD_TARGET/release/vector" RUN cargo sbom > sbom.spdx.json RUN cp "/app/target/$CARGO_BUILD_TARGET/release/vector" /app/target/ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS runtime +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS runtime ENV PKGS="inotify-tools" RUN eve-alpine-deploy.sh diff --git a/pkg/vector/build.yml b/pkg/vector/build.yml index 8c85b781267..493cd691d31 100644 --- a/pkg/vector/build.yml +++ b/pkg/vector/build.yml @@ -10,3 +10,6 @@ config: - /persist:/persist net: new pid: host + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/vtpm/Dockerfile b/pkg/vtpm/Dockerfile index 014ab91a6e7..0d69521327d 100644 --- a/pkg/vtpm/Dockerfile +++ b/pkg/vtpm/Dockerfile @@ -3,8 +3,11 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-dom0-ztools:000adaabe42b4f34dc196b722f143d3ae39f47fa AS dom0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE +ARG REL_HASH_LFEDGE_EVE_DOM0_ZTOOLS + +FROM ${REL_HASH_LFEDGE_EVE_DOM0_ZTOOLS} AS dom0 +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS="gcc g++ autoconf automake libtool make openssl-dev libtasn1-dev \ json-glib-dev gnutls bash expect gawk socat libseccomp-dev gmp-dev \ musl-utils autoconf-archive git json-c json-c-dev libcurl curl-dev \ diff --git a/pkg/vtpm/build.yml b/pkg/vtpm/build.yml index 69b38c949ea..2a8188d28db 100644 --- a/pkg/vtpm/build.yml +++ b/pkg/vtpm/build.yml @@ -15,3 +15,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/watchdog/Dockerfile b/pkg/watchdog/Dockerfile index f8e9d1ae462..d1db26b3fc7 100644 --- a/pkg/watchdog/Dockerfile +++ b/pkg/watchdog/Dockerfile @@ -1,7 +1,9 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS watchdog-build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS watchdog-build ENV BUILD_PKGS build-base file libtirpc-dev linux-headers tar util-linux ENV PKGS alpine-baselayout musl-utils libsmartcols RUN eve-alpine-deploy.sh diff --git a/pkg/watchdog/build.yml b/pkg/watchdog/build.yml index 81f35e4af1e..8b8271ba7c2 100644 --- a/pkg/watchdog/build.yml +++ b/pkg/watchdog/build.yml @@ -13,3 +13,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/wlan/Dockerfile b/pkg/wlan/Dockerfile index 8a93a2c0deb..68aae776755 100644 --- a/pkg/wlan/Dockerfile +++ b/pkg/wlan/Dockerfile @@ -1,6 +1,9 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build + +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV PKGS alpine-baselayout musl-utils wireless-tools wpa_supplicant RUN eve-alpine-deploy.sh diff --git a/pkg/wlan/build.yml b/pkg/wlan/build.yml index 3c7cc95c592..6ab7ce8c1c6 100644 --- a/pkg/wlan/build.yml +++ b/pkg/wlan/build.yml @@ -13,3 +13,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/wwan/Dockerfile b/pkg/wwan/Dockerfile index 197cab1fb27..8e9eabf9ecc 100644 --- a/pkg/wwan/Dockerfile +++ b/pkg/wwan/Dockerfile @@ -3,7 +3,9 @@ # Copyright (c) 2023-2025 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS meson ninja git libc-dev glib-dev make gcc udev dbus-dev libgudev-dev ENV PKGS alpine-baselayout dbus glib kmod-dev libgudev RUN eve-alpine-deploy.sh diff --git a/pkg/wwan/build.yml b/pkg/wwan/build.yml index 576fdaf8aee..dabb161cf41 100644 --- a/pkg/wwan/build.yml +++ b/pkg/wwan/build.yml @@ -14,3 +14,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/xen-tools/Dockerfile b/pkg/xen-tools/Dockerfile index 5fddbf54c19..6adca340e03 100644 --- a/pkg/xen-tools/Dockerfile +++ b/pkg/xen-tools/Dockerfile @@ -3,8 +3,11 @@ # Copyright (c) 2023 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 -FROM lfedge/eve-uefi:88d6376870a774e6f7a5f529084d68740287e6cb AS uefi-build -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS runx-build +ARG REL_HASH_LFEDGE_EVE_ALPINE +ARG REL_HASH_LFEDGE_EVE_UEFI + +FROM ${REL_HASH_LFEDGE_EVE_UEFI} AS uefi-build +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS runx-build ENV BUILD_PKGS mkinitfs gcc musl-dev e2fsprogs chrony agetty RUN eve-alpine-deploy.sh @@ -20,7 +23,7 @@ RUN gcc -s -o /chroot2 /tmp/chroot2.c -Wall -Werror RUN gcc -s -o /hacf /tmp/hacf.c -Wall -Werror RUN mkinitfs -n -F base -i /init-initrd -o /runx-initrd -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS build +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS build ENV BUILD_PKGS \ gcc make libc-dev dev86 xz-dev perl bash python3-dev \ gettext iasl util-linux-dev ncurses-dev glib-dev \ diff --git a/pkg/xen-tools/build.yml b/pkg/xen-tools/build.yml index ca7e226c2b2..5f23a0d062f 100644 --- a/pkg/xen-tools/build.yml +++ b/pkg/xen-tools/build.yml @@ -16,3 +16,6 @@ config: devices: - path: all type: a + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* diff --git a/pkg/xen/Dockerfile b/pkg/xen/Dockerfile index f21a681de62..419401ceead 100644 --- a/pkg/xen/Dockerfile +++ b/pkg/xen/Dockerfile @@ -1,4 +1,6 @@ -FROM lfedge/eve-alpine:745ae9066273c73b0fd879c4ba4ff626a8392d04 AS kernel-build +ARG REL_HASH_LFEDGE_EVE_ALPINE + +FROM ${REL_HASH_LFEDGE_EVE_ALPINE} AS kernel-build ENV BUILD_PKGS argp-standalone automake bash bc binutils-dev bison build-base \ diffutils flex git gmp-dev gnupg installkernel kmod \ diff --git a/pkg/xen/build.yml b/pkg/xen/build.yml index 6bd8253c16f..a8c86219559 100644 --- a/pkg/xen/build.yml +++ b/pkg/xen/build.yml @@ -1,2 +1,5 @@ image: eve-xen org: lfedge + +buildArgs: + - REL_HASH_%=@lkt:pkgs:../* From 5e963949d9e7919c562d6568190a7c1a8ace7a32 Mon Sep 17 00:00:00 2001 From: Christoph Ostarek Date: Sat, 20 Sep 2025 02:41:46 +0200 Subject: [PATCH 5/5] pkg/dnsmasq: adapt docker image build REL_HASH similar to pillar the docker image with the test target has to be built with docker directly and the build-args have to be extracted from linuxkit Signed-off-by: Christoph Ostarek --- pkg/dnsmasq/Makefile | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkg/dnsmasq/Makefile b/pkg/dnsmasq/Makefile index f9852b6c867..ba15c42c2e3 100644 --- a/pkg/dnsmasq/Makefile +++ b/pkg/dnsmasq/Makefile @@ -1,7 +1,16 @@ # Copyright (c) 2025 Zededa, Inc. # SPDX-License-Identifier: Apache-2.0 +HOSTARCH := $(subst aarch64,arm64,$(subst x86_64,amd64,$(shell uname -m))) +ZARCH ?= $(HOSTARCH) +DOCKER_LIKE_LKT := ../../build-tools/bin/linuxkit pkg build --network --platforms linux/$(ZARCH) --dry-run --force ./ | tail -n1 | perl -pe 's/ buildx / /g' + .PHONY: test -test: - docker run --privileged $(shell docker build --target=test -q .) go test -v +build-docker-test-dependencies: + make -C ../../ dnsmasq-cache-export-docker-load +build-docker-test-build: build-docker-test-dependencies + $(shell $(DOCKER_LIKE_LKT)) --load --target test + +test: build-docker-test-build + docker run --privileged $(shell $(shell $(DOCKER_LIKE_LKT)) --load -q --target test) go test -v