mirror of
https://github.com/N0rthernL1ghts/s6-rootfs.git
synced 2025-12-08 01:11:34 +01:00
76 lines
3.2 KiB
Docker
76 lines
3.2 KiB
Docker
ARG S6_OVERLAY_VERSION="3.2.0.2"
|
|
ARG S6_OVERLAY_RELEASE="https://github.com/just-containers/s6-overlay/releases/download"
|
|
ARG S6_OVERLAY_PAK_EXT=".tar.xz"
|
|
|
|
|
|
|
|
# Downloader stage: download s6-overlay base, binary, symlinks and checksums
|
|
FROM alpine:3.22 AS downloader
|
|
ARG TARGETPLATFORM
|
|
ARG S6_OVERLAY_VERSION
|
|
ARG S6_OVERLAY_RELEASE
|
|
ARG S6_OVERLAY_PAK_EXT
|
|
|
|
# Set environment variables
|
|
ENV BASE_URL="${S6_OVERLAY_RELEASE}/v${S6_OVERLAY_VERSION}/s6-overlay-noarch${S6_OVERLAY_PAK_EXT}"
|
|
ENV BASE_HASH_URL="${BASE_URL}.sha256"
|
|
ENV BIN_URL="${S6_OVERLAY_RELEASE}/v${S6_OVERLAY_VERSION}/s6-overlay-${TARGETPLATFORM}${S6_OVERLAY_PAK_EXT}"
|
|
ENV BIN_HASH_URL="${BIN_URL}.sha256"
|
|
ENV SYMLINKS_ARCH_URL="${S6_OVERLAY_RELEASE}/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch${S6_OVERLAY_PAK_EXT}"
|
|
ENV SYMLINKS_ARCH_HASH_URL="${SYMLINKS_ARCH_URL}.sha256"
|
|
ENV SYMLINKS_NOARCH_URL="${S6_OVERLAY_RELEASE}/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch${S6_OVERLAY_PAK_EXT}"
|
|
ENV SYMLINKS_NOARCH_HASH_URL="${SYMLINKS_NOARCH_URL}.sha256"
|
|
|
|
RUN set -eux \
|
|
&& apk add --no-cache wget \
|
|
# Replace platform
|
|
&& BIN_URL_FIXED=$(echo "${BIN_URL}" | sed -e 's/linux\///g' -e 's/amd64/x86_64/g' -e 's/arm64/aarch64/g' -e 's|arm/v7|armhf|g') \
|
|
&& BIN_HASH_URL_FIXED=$(echo "${BIN_HASH_URL}" | sed -e 's/linux\///g' -e 's/amd64/x86_64/g' -e 's/arm64/aarch64/g' -e 's|arm/v7|armhf|g') \
|
|
# Download s6-overlay binaries
|
|
&& wget -O /s6overlay-bin.tar.xz "${BIN_URL_FIXED}" \
|
|
&& wget -O /s6overlay-bin.tar.xz.sha256 "${BIN_HASH_URL_FIXED}" \
|
|
# Download s6-overlay base and its hash
|
|
&& wget -O /s6overlay-base.tar.xz "${BASE_URL}" \
|
|
&& wget -O /s6overlay-base.tar.xz.sha256 "${BASE_HASH_URL}" \
|
|
# Download s6-overlay symlinks \
|
|
&& wget -O /s6overlay-arch-symlinks.tar.xz "${SYMLINKS_ARCH_URL}" \
|
|
&& wget -O /s6overlay-arch-symlinks.tar.xz.sha256 "${SYMLINKS_ARCH_HASH_URL}" \
|
|
&& wget -O /s6overlay-noarch-symlinks.tar.xz "${SYMLINKS_NOARCH_URL}" \
|
|
&& wget -O /s6overlay-noarch-symlinks.tar.xz.sha256 "${SYMLINKS_NOARCH_HASH_URL}" \
|
|
# Build SHA256SUMS file
|
|
&& echo "$(cut -d' ' -f1 /s6overlay-base.tar.xz.sha256) /s6overlay-base.tar.xz" > /SHA256SUMS \
|
|
&& echo "$(cut -d' ' -f1 /s6overlay-bin.tar.xz.sha256) /s6overlay-bin.tar.xz" >> /SHA256SUMS \
|
|
&& echo "$(cut -d' ' -f1 /s6overlay-arch-symlinks.tar.xz.sha256) /s6overlay-arch-symlinks.tar.xz" >> /SHA256SUMS \
|
|
&& echo "$(cut -d' ' -f1 /s6overlay-noarch-symlinks.tar.xz.sha256) /s6overlay-noarch-symlinks.tar.xz" >> /SHA256SUMS \
|
|
# Verify integrity of downloaded files
|
|
&& sha256sum -c /SHA256SUMS
|
|
|
|
|
|
# Builder stage
|
|
FROM busybox AS builder
|
|
|
|
COPY --from=downloader ["/s6overlay-base.tar.xz", "/s6overlay-bin.tar.xz", "/s6overlay-arch-symlinks.tar.xz", "/s6overlay-noarch-symlinks.tar.xz", "/tmp/s6/"]
|
|
|
|
RUN set -eux \
|
|
&& mkdir -p /build \
|
|
&& tar -Jxpf /tmp/s6/s6overlay-base.tar.xz -C /build \
|
|
&& tar -Jxpf /tmp/s6/s6overlay-bin.tar.xz -C /build \
|
|
&& tar -Jxpf /tmp/s6/s6overlay-arch-symlinks.tar.xz -C /build \
|
|
&& tar -Jxpf /tmp/s6/s6overlay-noarch-symlinks.tar.xz -C /build
|
|
|
|
|
|
|
|
# Rootfs
|
|
FROM scratch AS rootfs
|
|
|
|
COPY --from=builder ["/build/", "/"]
|
|
|
|
|
|
|
|
# Final image: minimal rootfs
|
|
FROM scratch
|
|
|
|
LABEL maintainer="Aleksandar Puharic <aleksandar@puharic.com>"
|
|
|
|
COPY --from=rootfs ["/", "/"]
|