FROM alpine:3.23.0 AS base RUN apk add --no-cache curl ca-certificates # ---- kubelet ---- FROM base AS kubelet ARG KUBE_VERSION ARG ARCH WORKDIR /out/kubernetes RUN curl -fL --retry 3 -o "kubelet-${KUBE_VERSION}" \ "https://dl.k8s.io/${KUBE_VERSION}/bin/linux/${ARCH}/kubelet" && \ chmod +x "kubelet-${KUBE_VERSION}" # ---- kubeadm ---- FROM base AS kubeadm ARG KUBE_VERSION ARG ARCH WORKDIR /out/kubernetes RUN curl -fL --retry 3 -o "kubeadm-${KUBE_VERSION}" \ "https://dl.k8s.io/${KUBE_VERSION}/bin/linux/${ARCH}/kubeadm" && \ chmod +x "kubeadm-${KUBE_VERSION}" # ---- kubectl ---- FROM base AS kubectl ARG KUBE_VERSION ARG ARCH WORKDIR /out/kubernetes RUN curl -fL --retry 3 -o "kubectl-${KUBE_VERSION}" \ "https://dl.k8s.io/${KUBE_VERSION}/bin/linux/${ARCH}/kubectl" && \ chmod +x "kubectl-${KUBE_VERSION}" # ---- busybox ---- FROM base AS busybox ARG BUSYBOX_VERSION WORKDIR /out RUN curl -fL --retry 3 -o "busybox-${BUSYBOX_VERSION}.tar.gz" \ "https://github.com/mirror/busybox/archive/refs/tags/${BUSYBOX_VERSION}.tar.gz" # ---- e2fsprogs ---- FROM base AS e2fsprogs ARG E2FSPROGS_VERSION WORKDIR /out RUN curl -fL --retry 3 -o "e2fsprogs-v${E2FSPROGS_VERSION}.tar.gz" \ "https://github.com/tytso/e2fsprogs/archive/refs/tags/v${E2FSPROGS_VERSION}.tar.gz" # ---- dpdk ---- FROM base AS dpdk ARG DPDK_VERSION WORKDIR /out/nxp/dpdk RUN curl -fL --retry 3 -o "${DPDK_VERSION}.tar.gz" \ "https://github.com/nxp-qoriq/dpdk/archive/refs/tags/${DPDK_VERSION}.tar.gz" # ---- fmlib ---- FROM base AS fmlib ARG FMLIB_VERSION WORKDIR /out/nxp/fmlib RUN curl -fL --retry 3 -o "${FMLIB_VERSION}.tar.gz" \ "https://github.com/nxp-qoriq/fmlib/archive/refs/tags/${FMLIB_VERSION}.tar.gz" # ---- fmc ---- FROM base AS fmc ARG FMC_VERSION WORKDIR /out/nxp/fmc RUN curl -fL --retry 3 -o "${FMC_VERSION}.tar.gz" \ "https://github.com/nxp-qoriq/fmc/archive/refs/tags/${FMC_VERSION}.tar.gz" # ---- vpp ---- FROM base AS vpp ARG VPP_VERSION WORKDIR /out/nxp/vpp RUN curl -fL --retry 3 -o "${VPP_VERSION}.tar.gz" \ "https://github.com/nxp-qoriq/vpp/archive/refs/tags/${VPP_VERSION}.tar.gz" # ---- MUSL CC ---- FROM base AS aarch64_musl_cc WORKDIR /out RUN curl -fL --retry 3 -o "aarch64-linux-musl-cross.tgz" \ "https://musl.cc/aarch64-linux-musl-cross.tgz" # ---- ASK ---- FROM base AS mono_ask ARG MONO_ASK_VERSION WORKDIR /out/ask RUN curl -fL --retry 3 -o "${MONO_ASK_VERSION}.tar.gz" \ "https://github.com/we-are-mono/ASK/archive/refs/tags/${MONO_ASK_VERSION}.tar.gz" # ---- libnfnetlink ---- FROM base AS libnfnetlink ARG LIBNFNETLINK_VERSION WORKDIR /out/ask/libnfnetlink RUN curl -fL --retry 3 -o "${LIBNFNETLINK_VERSION}.tar.bz2" \ "https://www.netfilter.org/projects/libnfnetlink/files/libnfnetlink-${LIBNFNETLINK_VERSION}.tar.bz2" # ---- libnfct ---- FROM base AS libnfct ARG LIBNFCT_VERSION WORKDIR /out/ask/libnfct RUN curl -fL --retry 3 -o "${LIBNFCT_VERSION}.tar.xz" \ "https://www.netfilter.org/projects/libnetfilter_conntrack/files/libnetfilter_conntrack-${LIBNFCT_VERSION}.tar.xz" # ---- libmnl ---- FROM base AS libmnl ARG LIBMNL_VERSION WORKDIR /out/ask/libmnl RUN curl -fL --retry 3 -o "${LIBMNL_VERSION}.tar.bz2" \ "https://www.netfilter.org/projects/libmnl/files/libmnl-${LIBMNL_VERSION}.tar.bz2" # ---- tclap ---- FROM base AS tclap ARG TCLAP_VERSION WORKDIR /out/ask/tclap RUN curl -fL --retry 3 -o "${TCLAP_VERSION}.tar.gz" \ "https://sourceforge.net/projects/tclap/files/tclap-${TCLAP_VERSION}.tar.gz" # ---- libxml2 ---- FROM base AS libxml2 ARG LIBXML2_VERSION WORKDIR /out/ask/libxml2 RUN curl -fL --retry 3 -o "${LIBXML2_VERSION}.tar.xz" \ "https://download.gnome.org/sources/libxml2/2.11/libxml2-${LIBXML2_VERSION}.tar.xz" # ---- libcli ---- FROM base AS libcli ARG LIBCLI_VERSION WORKDIR /out/ask/libcli RUN curl -fL --retry 3 -o "${LIBCLI_VERSION}.tar.gz" \ "https://github.com/dparrish/libcli/archive/refs/tags/V${LIBCLI_VERSION}.tar.gz" # ---- libpcap ---- FROM base AS libpcap ARG LIBPCAP_VERSION WORKDIR /out/ask/libpcap RUN curl -fL --retry 3 -o "${LIBPCAP_VERSION}.tar.xz" \ "https://www.tcpdump.org/release/libpcap-${LIBPCAP_VERSION}.tar.xz" # ---- alpine rootfs ---- FROM base AS alpine_rootfs ARG ALPINE_SERIES ARG ALPINE_ARCH ARG ALPINE_VER WORKDIR /out RUN curl -fL --retry 3 -o "alpine-minirootfs-${ALPINE_VER}-${ALPINE_ARCH}.tar.gz" \ "https://dl-cdn.alpinelinux.org/alpine/v${ALPINE_SERIES}/releases/${ALPINE_ARCH}/alpine-minirootfs-${ALPINE_VER}-${ALPINE_ARCH}.tar.gz" # ---- nxp linux ---- FROM base AS nxp_linux ARG NXP_VERSION WORKDIR /out/nxp/kernel RUN curl -fL --retry 3 -o "${NXP_VERSION}.tar.gz" \ "https://github.com/nxp-qoriq/linux/archive/refs/tags/${NXP_VERSION}.tar.gz" # ---- crio ---- FROM base AS crio ARG CRIO_VERSION WORKDIR /out RUN curl -fL --retry 3 -o "${CRIO_VERSION}.tar.gz" \ "https://storage.googleapis.com/cri-o/artifacts/${CRIO_VERSION}.tar.gz" # ---- final exported artifact set ---- FROM scratch COPY --from=kubelet /out/ / COPY --from=kubeadm /out/ / COPY --from=kubectl /out/ / COPY --from=busybox /out/ / COPY --from=e2fsprogs /out/ / COPY --from=dpdk /out/ / COPY --from=aarch64_musl_cc /out/ / COPY --from=mono_ask /out/ / COPY --from=vpp /out/ / COPY --from=fmlib /out/ / COPY --from=fmc /out/ / COPY --from=libnfnetlink /out/ / COPY --from=libnfct /out/ / COPY --from=libmnl /out/ / COPY --from=libcli /out/ / COPY --from=libpcap /out/ / COPY --from=libxml2 /out/ / COPY --from=tclap /out/ / COPY --from=alpine_rootfs /out/ / COPY --from=nxp_linux /out/ / COPY --from=crio /out/ /