FROM alpine:latest AS builder LABEL maintainer="fithwum" ARG ALPINE_VERSION ENV ALPINE_VERSION=${ALPINE_VERSION} WORKDIR /builder # Install tools needed for building rootfs RUN apk update && apk add --no-cache bash curl wget git jq ca-certificates coreutils tar gzip # Download alpine-make-rootfs script RUN wget https://raw.githubusercontent.com/alpinelinux/alpine-make-rootfs/master/alpine-make-rootfs \ && chmod +x alpine-make-rootfs # Build the rootfs RUN ./alpine-make-rootfs \ --branch ${ALPINE_VERSION} \ --mirror http://dl-cdn.alpinelinux.org/alpine/ \ --packages "bash curl ca-certificates nano" \ alpine-rootfs # Run custom script inside rootfs COPY base-image-script/alpine-base_pt2.sh /builder/alpine-rootfs/ RUN chmod +x /builder/alpine-rootfs/alpine-base_pt2.sh && \ chroot /builder/alpine-rootfs /alpine-base_pt2.sh || true # Clean up script RUN rm -f /builder/alpine-rootfs/alpine-base_pt2.sh # Package with versioned filename RUN mkdir -p /output && \ tar -czf /output/alpine-${ALPINE_VERSION}.tar.gz -C alpine-rootfs . # Final stage just copies the archive FROM scratch AS export-stage ARG ALPINE_VERSION COPY --from=builder /output/alpine-${ALPINE_VERSION}.tar.gz /output/alpine-${ALPINE_VERSION}.tar.gz CMD ["sleep", "infinity"]