diff --git a/Dockerfile b/Dockerfile index 4e10a91..09e0998 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,35 +1,53 @@ -ARG BUILD_BASE_IMAGE -FROM ${BUILD_BASE_IMAGE} +# syntax=docker/dockerfile:1 +ARG BUILD_BASE_IMAGE=alpine:latest #Fallback alpine:latest +FROM ${BUILD_BASE_IMAGE} AS rootfs-stage -ARG MAINTAINER -ARG TZ -ARG APP_NAME -ARG APP_USER -ARG BUILD_S6_OVERLAY_VERSION -ARG BUILD_S6_ARCH_amd64 +# environment +ENV REL=${BUILD_DEBIAN_REL} +ENV ARCH=${BUILD_DEBIAN_ARCH} -LABEL maintainer="${MAINTAINER}" -LABEL org.opencontainers.image.title="${APP_NAME}" +# install packages +RUN \ + apk add --no-cache \ + bash \ + curl \ + tzdata \ + xz -ENV TZ=${TZ} -ENV USER=${APP_USER} +# grab base tarball +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/* -RUN apt-get update && \ - apt-get install -y --no-install-recommends xz-utils \ - tzdata +# set version for s6 overlay +ARG S6_OVERLAY_VERSION=${BUILD_S6_OVERLAY_VERSION} +ARG S6_OVERLAY_ARCH=${BUILD_S6_ARCH_amd64} # add s6 overlay -ADD https://github.com/just-containers/s6-overlay/releases/download/v${BUILD_S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp +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${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 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 s6 optional symlinks -ADD https://github.com/just-containers/s6-overlay/releases/download/v${BUILD_S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz /tmp +ADD https://github.com/just-containers/s6-overlay/releases/download/v${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${BUILD_S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz +######################### +# Runtime stage + +FROM scratch +COPY --from=rootfs-stage /root-out/ / + ARG BUILD_DATE ARG BUILD_APP_VERSION ARG MODS_VERSION="v3" @@ -50,18 +68,8 @@ ADD --chmod=755 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-s # set environment variables ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ - LANGUAGE="de_DE.UTF-8" \ - LANG="de_DE.UTF-8" \ - TERM="xterm" \ - S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ - S6_VERBOSITY=1 \ - S6_STAGE2_HOOK=/docker-mods \ - VIRTUAL_ENV=/lsiopy \ - PATH="/lsiopy/bin:$PATH" - -# environment variables -ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \ - HOME="/root" \ + LANGUAGE="en_US.UTF-8" \ + LANG="en_US.UTF-8" \ TERM="xterm" \ S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ S6_VERBOSITY=1 \ @@ -128,9 +136,9 @@ RUN \ rm -f /etc/apt/sources.list.d/debian.sources && \ echo "**** generate locale ****" && \ locale-gen en_US.UTF-8 && \ - echo "**** create abc user and make our folders ****" && \ - useradd -u ${BUILD_APP_UID} -U -d /config -s /bin/false ${USER} && \ - usermod -G users ${USER} && \ + echo "**** create pi user and make our folders ****" && \ + useradd -u 911 -U -d /config -s /bin/false ${BUILD_APP_USER} && \ + usermod -G users ${BUILD_APP_USER} && \ mkdir -p \ /app \ /config \ diff --git a/buildargs.env b/buildargs.env index 22ac732..f03884f 100644 --- a/buildargs.env +++ b/buildargs.env @@ -6,6 +6,8 @@ BUILD_BASE_IMAGE=debian:${BUILD_BASE_TAG} # git.pi-farm.de/pi-farm/docker-baseimage-alpine:v${BUILD_TAG} BUILD_ALPINE_ARCH_AMD64=x86_64 BUILD_ALPINE_ARCH_AARCH64=aarch64 +BUILD_DEBIAN_ARCH=amd64 +BUILD_DEBIAN_REL=trixie BUILD_S6_ARCH_amd64=x86_64 BUILD_S6_ARCH_aarch64=aarch64 BUILD_S6_OVERLAY_VERSION=3.2.2.0 @@ -15,6 +17,8 @@ BUILD_APP_NAME=baseimage-debian BUILD_APP_USER=pi BUILD_APP_UID=1000 BUILD_APP_GID=1000 +TARGET_BASE_TAG=trixie-slim +TARGET_BASE_IMAGE=debian:${TARGET_BASE_TAG} ## ENV STAGE ENV_TZ=Europe/Berlin ENV_PUID=1000