diff --git a/Dockerfile b/Dockerfile index d1ac931..9686b0d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,38 +2,35 @@ FROM alpine:3.23 AS rootfs-stage +ARG TARGETARCH ARG S6_OVERLAY_VERSION="3.2.2.0" ARG ROOTFS=/root-out ARG REL=v3.23 -ARG ARCH=x86_64 ARG MIRROR=http://dl-cdn.alpinelinux.org/alpine -ARG PACKAGES=alpine-baselayout,\ -alpine-keys,\ -apk-tools,\ -busybox,\ -libc-utils +ARG PACKAGES=alpine-baselayout,alpine-keys,apk-tools,busybox,libc-utils -# install packages -RUN \ - apk add --no-cache \ - bash \ - xz +RUN apk add --no-cache bash xz curl ca-certificates + +# map arch +RUN case "${TARGETARCH}" in \ + amd64) echo "x86_64" > /arch ;; \ + arm64) echo "aarch64" > /arch ;; \ + *) echo "unsupported arch" && exit 1 ;; \ + esac # build rootfs -RUN \ - 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 ${ARCH} --initdb ${PACKAGES//,/ } && \ - sed -i -e 's/^root::/root:!:/' /root-out/etc/shadow +RUN mkdir -p "${ROOTFS}/etc/apk" && \ + echo "${MIRROR}/${REL}/main" > "${ROOTFS}/etc/apk/repositories" && \ + echo "${MIRROR}/${REL}/community" >> "${ROOTFS}/etc/apk/repositories" && \ + apk --root "${ROOTFS}" --no-cache --initdb ${PACKAGES//,/ } && \ + sed -i 's/^root::/root:!:/' "${ROOTFS}/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 -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-${ARCH}.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-${ARCH}.tar.xz +# s6 overlay +RUN ARCH="$(cat /arch)" && \ + curl -fsSL https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz \ + | tar -C "${ROOTFS}" -Jxpf - && \ + curl -fsSL https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${ARCH}.tar.xz \ + | tar -C "${ROOTFS}" -Jxpf - # 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