diff --git a/Dockerfile b/Dockerfile index 7beff97..a7246f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,40 +1,24 @@ # syntax=docker/dockerfile:1 ARG BUILD_BASE_IMAGE -FROM ${BUILD_BASE_IMAGE} AS rootfs-stage +FROM ${BUILD_BASE_IMAGE} ARG BUILD_APP_VERSION ARG BUILD_S6_ARCH_amd64 ARG BUILD_S6_OVERLAY_VERSION -ARG ROOTFS=/root-out ARG BUILD_DEBIAN_REL ARG BUILD_DEBIAN_ARCH -ARG MIRROR=http://dl-cdn.alpinelinux.org/alpine -ARG PACKAGES=alpine-baselayout,\ -alpine-keys,\ -apk-tools,\ -busybox,\ -libc-utils - -# install packages -# install packages -RUN \ - apk add --no-cache \ - bash \ - curl \ - tzdata \ - xz - -# grab base tarball -RUN \ - mkdir /root-out && \ - curl -o \ - /rootfs.tar.gz -L \ - https://github.com/debuerreotype/docker-debian-artifacts/raw/refs/heads/dist-${BUILD_DEBIAN_ARCH}/${BUILD_DEBIAN_REL}/slim/oci/blobs/rootfs.tar.gz && \ - tar xf \ - /rootfs.tar.gz -C \ - /root-out && \ - rm -rf \ - /root-out/var/log/* +ARG BUILD_DATE +ARG BUILD_APP_VERSION +ARG MODS_VERSION="v3" +ARG PKG_INST_VERSION="v1" +ARG LSIOWN_VERSION="v1" +ARG WITHCONTENV_VERSION="v1" +ARG BUILD_APP_GID +ARG BUILD_APP_USER +ARG BUILD_MAINTAINER +ARG DEBIAN_FRONTEND="noninteractive" +LABEL build_version="${BUILD_MAINTAINER} version: ${BUILD_APP_VERSION} Build-date:- ${BUILD_DATE}" +LABEL maintainer="${BUILD_MAINTAINER}" # add s6 overlay ADD https://github.com/just-containers/s6-overlay/releases/download/v${BUILD_S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp @@ -48,34 +32,15 @@ RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz && unlink /roo 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 -######################### -# Runtime stage - -FROM scratch -COPY --from=rootfs-stage /root-out/ / - -ARG BUILD_DATE -ARG BUILD_APP_VERSION -ARG MODS_VERSION="v3" -ARG PKG_INST_VERSION="v1" -ARG LSIOWN_VERSION="v1" -ARG WITHCONTENV_VERSION="v1" -ARG BUILD_APP_GID -ARG BUILD_APP_USER -ARG BUILD_MAINTAINER -LABEL build_version="${BUILD_MAINTAINER} version: ${BUILD_APP_VERSION} Build-date:- ${BUILD_DATE}" -LABEL maintainer="${BUILD_MAINTAINER}" - ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/package-install.${PKG_INST_VERSION}" "/etc/s6-overlay/s6-rc.d/init-mods-package-install/run" ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/lsiown.${LSIOWN_VERSION}" "/usr/bin/lsiown" ADD --chmod=755 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/with-contenv.${WITHCONTENV_VERSION}" "/usr/bin/with-contenv" # set environment variables -ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ - LANGUAGE="en_US.UTF-8" \ - LANG="en_US.UTF-8" \ + LANGUAGE="de_DE.UTF-8" \ + LANG="de_DE.UTF-8" \ TERM="xterm" \ S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ S6_VERBOSITY=1 \ @@ -83,39 +48,7 @@ ENV HOME="/root" \ VIRTUAL_ENV=/lsiopy \ PATH="/lsiopy/bin:$PATH" -RUN \ - echo "**** Ripped from Ubuntu Docker Logic ****" && \ - echo '#!/bin/sh' \ - > /usr/sbin/policy-rc.d && \ - echo 'exit 101' \ - >> /usr/sbin/policy-rc.d && \ - chmod +x \ - /usr/sbin/policy-rc.d && \ - dpkg-divert --local --rename --add /sbin/initctl && \ - cp -a \ - /usr/sbin/policy-rc.d \ - /sbin/initctl && \ - sed -i \ - 's/^exit.*/exit 0/' \ - /sbin/initctl && \ - echo 'force-unsafe-io' \ - > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && \ - echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ - > /etc/apt/apt.conf.d/docker-clean && \ - echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ - >> /etc/apt/apt.conf.d/docker-clean && \ - echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' \ - >> /etc/apt/apt.conf.d/docker-clean && \ - echo 'Acquire::Languages "none";' \ - > /etc/apt/apt.conf.d/docker-no-languages && \ - echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' \ - > /etc/apt/apt.conf.d/docker-gzip-indexes && \ - echo 'Apt::AutoRemove::SuggestsImportant "false";' \ - > /etc/apt/apt.conf.d/docker-autoremove-suggests && \ - mkdir -p /run/systemd && \ - echo 'docker' \ - > /run/systemd/container && \ - echo "**** install apt-utils and locales ****" && \ +RUN echo "**** install apt-utils and locales ****" && \ apt-get update && \ apt-get upgrade -y && \ apt-get install -y \ @@ -141,10 +74,10 @@ RUN \ echo "deb-src http://security.debian.org/debian-security/ trixie-security main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \ rm -f /etc/apt/sources.list.d/debian.sources && \ echo "**** generate locale ****" && \ - locale-gen en_US.UTF-8 && \ + locale-gen de_DE.UTF-8 && \ echo "**** create abc user and make our folders ****" && \ - useradd -u 911 -U -d /config -s /bin/false abc && \ - usermod -G users abc && \ + 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/Dockerfile.aarch64 b/Dockerfile.aarch64 index 622aba7..c1b706e 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,40 +1,24 @@ # syntax=docker/dockerfile:1 ARG BUILD_BASE_IMAGE -FROM ${BUILD_BASE_IMAGE} AS rootfs-stage +FROM ${BUILD_BASE_IMAGE} ARG BUILD_APP_VERSION ARG BUILD_S6_ARCH_aarch64 ARG BUILD_S6_OVERLAY_VERSION -ARG ROOTFS=/root-out ARG BUILD_DEBIAN_REL ARG BUILD_DEBIAN_ARCH_AARCH64 -ARG MIRROR=http://dl-cdn.alpinelinux.org/alpine -ARG PACKAGES=alpine-baselayout,\ -alpine-keys,\ -apk-tools,\ -busybox,\ -libc-utils - -# install packages -# install packages -RUN \ - apk add --no-cache \ - bash \ - curl \ - tzdata \ - xz - -# grab base tarball -RUN \ - mkdir /root-out && \ - curl -o \ - /rootfs.tar.gz -L \ - https://github.com/debuerreotype/docker-debian-artifacts/raw/refs/heads/dist-${BUILD_DEBIAN_ARCH_AARCH64}/${BUILD_DEBIAN_REL}/slim/oci/blobs/rootfs.tar.gz && \ - tar xf \ - /rootfs.tar.gz -C \ - /root-out && \ - rm -rf \ - /root-out/var/log/* +ARG BUILD_DATE +ARG BUILD_APP_VERSION +ARG MODS_VERSION="v3" +ARG PKG_INST_VERSION="v1" +ARG LSIOWN_VERSION="v1" +ARG WITHCONTENV_VERSION="v1" +ARG BUILD_APP_GID +ARG BUILD_APP_USER +ARG BUILD_MAINTAINER +ARG DEBIAN_FRONTEND="noninteractive" +LABEL build_version="${BUILD_MAINTAINER} version: ${BUILD_APP_VERSION} Build-date:- ${BUILD_DATE}" +LABEL maintainer="${BUILD_MAINTAINER}" # add s6 overlay ADD https://github.com/just-containers/s6-overlay/releases/download/v${BUILD_S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp @@ -48,34 +32,15 @@ RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz && unlink /roo 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 -######################### -# Runtime stage - -FROM scratch -COPY --from=rootfs-stage /root-out/ / - -ARG BUILD_DATE -ARG BUILD_APP_VERSION -ARG MODS_VERSION="v3" -ARG PKG_INST_VERSION="v1" -ARG LSIOWN_VERSION="v1" -ARG WITHCONTENV_VERSION="v1" -ARG BUILD_APP_GID -ARG BUILD_APP_USER -ARG BUILD_MAINTAINER -LABEL build_version="${BUILD_MAINTAINER} version: ${BUILD_APP_VERSION} Build-date:- ${BUILD_DATE}" -LABEL maintainer="${BUILD_MAINTAINER}" - ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/package-install.${PKG_INST_VERSION}" "/etc/s6-overlay/s6-rc.d/init-mods-package-install/run" ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/lsiown.${LSIOWN_VERSION}" "/usr/bin/lsiown" ADD --chmod=755 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/with-contenv.${WITHCONTENV_VERSION}" "/usr/bin/with-contenv" # set environment variables -ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ - LANGUAGE="en_US.UTF-8" \ - LANG="en_US.UTF-8" \ + LANGUAGE="de_DE.UTF-8" \ + LANG="de_DE.UTF-8" \ TERM="xterm" \ S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ S6_VERBOSITY=1 \ @@ -83,39 +48,7 @@ ENV HOME="/root" \ VIRTUAL_ENV=/lsiopy \ PATH="/lsiopy/bin:$PATH" -RUN \ - echo "**** Ripped from Ubuntu Docker Logic ****" && \ - echo '#!/bin/sh' \ - > /usr/sbin/policy-rc.d && \ - echo 'exit 101' \ - >> /usr/sbin/policy-rc.d && \ - chmod +x \ - /usr/sbin/policy-rc.d && \ - dpkg-divert --local --rename --add /sbin/initctl && \ - cp -a \ - /usr/sbin/policy-rc.d \ - /sbin/initctl && \ - sed -i \ - 's/^exit.*/exit 0/' \ - /sbin/initctl && \ - echo 'force-unsafe-io' \ - > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && \ - echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ - > /etc/apt/apt.conf.d/docker-clean && \ - echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ - >> /etc/apt/apt.conf.d/docker-clean && \ - echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' \ - >> /etc/apt/apt.conf.d/docker-clean && \ - echo 'Acquire::Languages "none";' \ - > /etc/apt/apt.conf.d/docker-no-languages && \ - echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' \ - > /etc/apt/apt.conf.d/docker-gzip-indexes && \ - echo 'Apt::AutoRemove::SuggestsImportant "false";' \ - > /etc/apt/apt.conf.d/docker-autoremove-suggests && \ - mkdir -p /run/systemd && \ - echo 'docker' \ - > /run/systemd/container && \ - echo "**** install apt-utils and locales ****" && \ +RUN echo "**** install apt-utils and locales ****" && \ apt-get update && \ apt-get upgrade -y && \ apt-get install -y \ @@ -141,10 +74,10 @@ RUN \ echo "deb-src http://security.debian.org/debian-security/ trixie-security main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \ rm -f /etc/apt/sources.list.d/debian.sources && \ echo "**** generate locale ****" && \ - locale-gen en_US.UTF-8 && \ + locale-gen de_DE.UTF-8 && \ echo "**** create abc user and make our folders ****" && \ - useradd -u 911 -U -d /config -s /bin/false abc && \ - usermod -G users abc && \ + 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 114d4b9..a5d1c73 100644 --- a/buildargs.env +++ b/buildargs.env @@ -1,18 +1,18 @@ ## BUILD STAGE -BUILD_BASE_TAG=3.23 +BUILD_BASE_TAG=trixie-slim BUILD_TAG_LATEST=y -BUILD_BASE_IMAGE=alpine:3.23 +BUILD_BASE_IMAGE=debian:trixie-slim ## Examples for BUILD_BASE_IMAGE # alpine:${BUILD_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_ALPINE_ARCH_AMD64=x86_64 +#BUILD_ALPINE_ARCH_AARCH64=aarch64 BUILD_DEBIAN_ARCH=amd64 BUILD_DEBIAN_ARCH_AARCH64=arm64v8 BUILD_DEBIAN_REL=trixie BUILD_S6_ARCH_amd64=x86_64 BUILD_S6_ARCH_aarch64=aarch64 -BUILD_S6_OVERLAY_VERSION=3.2.1.0 +BUILD_S6_OVERLAY_VERSION=3.2.2.0 BUILD_MAINTAINER=pi-farm BUILD_APP_VERSION=trixie-slim BUILD_APP_NAME=baseimage-debian