80 lines
3.3 KiB
Docker
80 lines
3.3 KiB
Docker
# syntax=docker/dockerfile:1
|
|
ARG BUILD_BASE_IMAGE
|
|
FROM ${BUILD_BASE_IMAGE}
|
|
|
|
ARG BUILD_APP_VERSION
|
|
ARG BUILD_S6_ARCH_aarch64
|
|
ARG BUILD_S6_OVERLAY_VERSION
|
|
ARG BUILD_DATE
|
|
ARG MODS_VERSION="v3"
|
|
ARG LSIOWN_VERSION="v1"
|
|
ARG WITHCONTENV_VERSION="v1"
|
|
ARG BUILD_APP_USER
|
|
ARG BUILD_APP_UID
|
|
ARG BUILD_APP_GID
|
|
ARG BUILD_MAINTAINER
|
|
|
|
LABEL build_version="${BUILD_MAINTAINER} version: ${BUILD_APP_VERSION} Build-date:- ${BUILD_DATE}"
|
|
LABEL maintainer="${BUILD_MAINTAINER}"
|
|
|
|
# 1. EPEL Repository und Grundpakete für RHEL/UBI installieren
|
|
RUN microdnf install -y --nodocs \
|
|
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \
|
|
microdnf update -y && \
|
|
microdnf install -y --nodocs \
|
|
xz \
|
|
tar \
|
|
shadow-utils \
|
|
tzdata && \
|
|
microdnf clean all
|
|
|
|
# 2. S6 Overlay hinzufügen (explizit für aarch64)
|
|
ADD https://github.com/just-containers/s6-overlay/releases/download/v${BUILD_S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp
|
|
RUN tar -C / -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_aarch64}.tar.xz /tmp
|
|
RUN tar -C / -Jxpf /tmp/s6-overlay-${BUILD_S6_ARCH_aarch64}.tar.xz
|
|
|
|
# 3. S6 optionale Symlinks
|
|
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 / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz && unlink /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
|
|
RUN tar -C / -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz
|
|
|
|
# 4. LSIO Mods Integration (ohne package-install, da es via COPY root/ kommt)
|
|
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/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"
|
|
|
|
# 5. Umgebungsvariablen setzen
|
|
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"
|
|
|
|
# 6. Restliche Pakete (aus EPEL & UBI), User und Ordner anlegen
|
|
RUN echo "**** install packages and locales ****" && \
|
|
microdnf install -y --nodocs \
|
|
glibc-langpack-de \
|
|
curl \
|
|
jq \
|
|
nmap-ncat \
|
|
cronie && \
|
|
echo "**** create abc user and make our folders ****" && \
|
|
groupadd -g ${BUILD_APP_GID} ${BUILD_APP_USER} || true && \
|
|
useradd -u ${BUILD_APP_UID} -g ${BUILD_APP_GID} -d /config -s /bin/false ${BUILD_APP_USER} && \
|
|
mkdir -p /app /config /defaults /lsiopy && \
|
|
echo "**** cleanup ****" && \
|
|
microdnf clean all && \
|
|
rm -rf /tmp/* /var/tmp/*
|
|
|
|
# 7. Lokale Skripte kopieren und Ausführungsrechte für S6 reparieren
|
|
ADD https://git.pi-farm.de/pi-farm/s6-overlay/archive/stable.tar.gz /tmp
|
|
RUN tar -C / -Jxpf /tmp/stable.tar.gz && rm -rf /tmp/stable.tar.gz
|
|
RUN find /etc/s6-overlay/s6-rc.d/ -type f \( -name "run" -o -name "up" \) -exec chmod +x {} +
|
|
|
|
ENTRYPOINT ["/init"] |