diff --git a/Dockerfile b/Dockerfile index 36849f3..a90c07a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,20 @@ # syntax=docker/dockerfile:1 ARG BUILD_BASE_IMAGE=alpine:latest + FROM ${BUILD_BASE_IMAGE} AS rootfs-stage -# environment -ENV REL=${BUILD_DEBIAN_REL} -ENV ARCH=${BUILD_DEBIAN_ARCH} +ARG BUILD_APP_VERSION +ARG BUILD_S6_ARCH_amd64 +ARG BUILD_S6_OVERLAY_VERSION +ARG ROOTFS=/root-out +ARG REL=${BUILD_APP_VERSION} +ARG ARCH=x86_64 +ARG MIRROR=http://dl-cdn.alpinelinux.org/alpine +ARG PACKAGES=alpine-baselayout,\ +alpine-keys,\ +apk-tools,\ +busybox,\ +libc-utils # install packages RUN \ @@ -14,32 +24,26 @@ RUN \ tzdata \ xz -# grab base tarball +# build rootfs RUN \ - mkdir /root-out && \ - curl -o \ - /rootfs.tar.gz -L \ - https://github.com/debuerreotype/docker-debian-artifacts/raw/refs/heads/dist-${ARCH}/${REL}/slim/oci/blobs/rootfs.tar.gz && \ - tar xf \ - /rootfs.tar.gz -C \ - /root-out && \ - rm -rf \ - /root-out/var/log/* - -# set version for s6 overlay -ARG S6_OVERLAY_VERSION=${BUILD_S6_OVERLAY_VERSION} -ARG S6_OVERLAY_ARCH=${BUILD_S6_ARCH_amd64} + mkdir -p "${ROOTFS}/etc/apk" && \ + { \ + echo "${MIRROR}/${REL}/main"; \ + echo "${MIRROR}/${REL}/community"; \ + } > "${ROOTFS}/etc/apk/repositories" && \ + apk --root "${ROOTFS}" --no-cache --keys-dir /etc/apk/keys add --arch ${BUILD_S6_ARCH_amd64} --initdb ${PACKAGES//,/ } && \ + sed -i -e 's/^root::/root:!:/' /root-out/etc/shadow # add s6 overlay -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp +ADD https://github.com/just-containers/s6-overlay/releases/download/v${BUILD_S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp RUN tar -C /root-out -Jxpf /tmp/s6-overlay-noarch.tar.xz -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz +ADD https://github.com/just-containers/s6-overlay/releases/download/v${BUILD_S6_OVERLAY_VERSION}/s6-overlay-${BUILD_S6_ARCH_amd64}.tar.xz /tmp +RUN tar -C /root-out -Jxpf /tmp/s6-overlay-${BUILD_S6_ARCH_amd64}.tar.xz # add s6 optional symlinks -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz /tmp +ADD https://github.com/just-containers/s6-overlay/releases/download/v${BUILD_S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz /tmp RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz && unlink /root-out/usr/bin/with-contenv -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp +ADD https://github.com/just-containers/s6-overlay/releases/download/v${BUILD_S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz #########################