first try

This commit is contained in:
2026-03-17 23:27:36 +01:00
parent 0c584feda1
commit 2b76b3a434
4 changed files with 163 additions and 57 deletions

1
.gitignore vendored
View File

@@ -3,6 +3,7 @@
**/node_modules **/node_modules
**/dist **/dist
**/*.log **/*.log
.vscode/*
# Betriebssystem-Dateien # Betriebssystem-Dateien
.DS_Store .DS_Store

View File

@@ -1,27 +1,80 @@
# Example Dockerfile for amd64 # syntax=docker/dockerfile:1
ARG BASE_IMAGE=alpine:latest ARG BUILD_BASE_IMAGE
FROM ${BUILD_BASE_IMAGE}
FROM ${BASE_IMAGE} ARG BUILD_APP_VERSION
ARG BUILD_S6_ARCH_amd64
ARG BUILD_S6_OVERLAY_VERSION
ARG BUILD_DATE
ARG MODS_VERSION="v3"
ARG PKG_INST_VERSION="v1"
ARG LSIOWN_VERSION="v1"
ARG WITHCONTENV_VERSION="v1"
ARG BUILD_APP_USER
ARG BUILD_APP_UID
ARG BUILD_APP_GID
ARG BUILD_MAINTAINER
ARG MAINTAINER LABEL build_version="${BUILD_MAINTAINER} version: ${BUILD_APP_VERSION} Build-date:- ${BUILD_DATE}"
ARG TZ LABEL maintainer="${BUILD_MAINTAINER}"
ARG APP_NAME
ARG APP_USER
LABEL maintainer="${MAINTAINER}" # RHEL nutzt microdnf. Wir installieren xz (für tar) und shadow-utils (für useradd)
LABEL org.opencontainers.image.title="${APP_NAME}" RUN microdnf update -y && \
microdnf install -y --nodocs \
xz \
tar \
shadow-utils \
tzdata && \
microdnf clean all
ENV TZ=${TZ} # add s6 overlay
ENV USER=${APP_USER} 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_amd64}.tar.xz /tmp
RUN tar -C / -Jxpf /tmp/s6-overlay-${BUILD_S6_ARCH_amd64}.tar.xz
RUN apk add --no-cache tzdata ca-certificates # 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
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
WORKDIR /app # LSIO Mods Integration
COPY ./config /app/config ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods"
COPY ./data /app/data 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"
RUN adduser -D ${APP_USER} && chown -R ${APP_USER}:${APP_USER} /app # set environment variables
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"
USER ${APP_USER} RUN echo "**** install packages and locales ****" && \
microdnf install -y --nodocs \
glibc-langpack-de \
curl \
jq \
nmap-ncat \
cronie && \
echo "**** create user and folders ****" && \
# In RHEL prüfen wir, ob die Gruppe existiert, bevor wir sie anlegen
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/*
CMD ["sh"] # 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"]

View File

@@ -1,27 +1,80 @@
# Example Dockerfile for arm64 # syntax=docker/dockerfile:1
ARG BASE_IMAGE=alpine:latest ARG BUILD_BASE_IMAGE
FROM ${BUILD_BASE_IMAGE}
FROM ${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
ARG MAINTAINER LABEL build_version="${BUILD_MAINTAINER} version: ${BUILD_APP_VERSION} Build-date:- ${BUILD_DATE}"
ARG TZ LABEL maintainer="${BUILD_MAINTAINER}"
ARG APP_NAME
ARG APP_USER
LABEL maintainer="${MAINTAINER}" # 1. EPEL Repository und Grundpakete für RHEL/UBI installieren
LABEL org.opencontainers.image.title="${APP_NAME}" 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
ENV TZ=${TZ} # 2. S6 Overlay hinzufügen (explizit für aarch64)
ENV USER=${APP_USER} 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
RUN apk add --no-cache tzdata ca-certificates # 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
WORKDIR /app # 4. LSIO Mods Integration (ohne package-install, da es via COPY root/ kommt)
COPY ./config /app/config ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods"
COPY ./data /app/data 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"
RUN adduser -D ${APP_USER} && chown -R ${APP_USER}:${APP_USER} /app # 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"
USER ${APP_USER} # 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/*
CMD ["sh"] # 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"]

View File

@@ -1,26 +1,25 @@
## BUILD STAGE ## BUILD STAGE
BUILD_TAG=1.00 BUILD_BASE_TAG=9.3
BUILD_BASE_IMAGE=alpine:${BUILD_TAG} BUILD_TAG_LATEST=y
## Examples for BUILD_BASE_IMAGE # Wir nutzen UBI Minimal für ein kleines Image
# alpine:${BUILD_TAG} BUILD_BASE_IMAGE=registry.access.redhat.com/ubi9/ubi-minimal:latest
# git.pi-farm.de/pi-farm/docker-baseimage-alpine:v${BUILD_TAG}
#BUILD_ALPINE_ARCH_AMD64=x86_64 BUILD_RHEL_ARCH=x86_64
#BUILD_ALPINE_ARCH_AARCH64=aarch64 BUILD_RHEL_ARCH_AARCH64=aarch64
#BUILD_S6_ARCH_amd64=x86_64 BUILD_RHEL_REL=9
#BUILD_S6_ARCH_aarch64=aarch64 BUILD_S6_ARCH_amd64=x86_64
#BUILD_S6_OVERLAY_VERSION=3.2.0.2 BUILD_S6_ARCH_aarch64=aarch64
#BUILD_MAINTAINER=pi-farm BUILD_S6_OVERLAY_VERSION=3.2.2.0
#BUILD_APP_VERSION=v${BUILD_TAG} BUILD_MAINTAINER=pi-farm
#BUILD_APP_NAME=basimage-alpine BUILD_APP_VERSION=ubi9
#BUILD_APP_USER=pi BUILD_APP_NAME=baseimage-rhel
#BUILD_APP_GID=1000 BUILD_APP_USER=pi
BUILD_APP_UID=1000
BUILD_APP_GID=1000
## ENV STAGE ## ENV STAGE
ENV_TZ=Europe/Berlin ENV_TZ=Europe/Berlin
ENV_PUID=1000 ENV_PUID=1000
ENV_PGID=1000 ENV_PGID=1000
# VOL_CONFIG=./config:/config PUSH=gitea
# VOL_DATA=./data:/data DESCRIPTION="This is a RHEL (UBI) based image with s6-overlay.\nBased on the great work of Linuxserver.io"
# PORT_WEB=8080:80
#PUSH=gitea,dockerhub
DESCRIPTION="Example example example"