Compare commits

19 Commits

Author SHA1 Message Date
Gitea Action
c21a4c2946 switch to s6-overlay version 3.2.2.0 [skip ci] 2026-02-25 14:26:38 +00:00
fbd14e7c3c switch to s6-overlay version 3.2.2.0
All checks were successful
/ release-and-build (push) Successful in 1m21s
2026-02-25 14:25:22 +00:00
Gitea Action
44cad43ac9 test fix for latest-tag in workflow on building v3.23 [skip ci] 2026-02-19 22:08:41 +00:00
2dcadae371 test fix for latest-tag in workflow on building v3.23
All checks were successful
/ release-and-build (push) Successful in 1m29s
2026-02-19 23:06:53 +01:00
Gitea Action
6d398b7073 add fix for latest-tag in workflow [skip ci] 2026-02-19 22:02:48 +00:00
bccd8aa596 add fix for latest-tag in workflow
All checks were successful
/ release-and-build (push) Successful in 1m32s
2026-02-19 23:01:13 +01:00
Gitea Action
475875f834 build for alpine v3.23 [skip ci] 2026-02-19 20:20:09 +00:00
6d69e7965a build for alpine v3.23
All checks were successful
/ release-and-build (push) Successful in 1m27s
2026-02-19 21:18:28 +01:00
Gitea Action
eaa56774ee build for alpine v3.21 [skip ci] 2026-02-19 20:16:32 +00:00
fa61e29a57 build for alpine v3.21
All checks were successful
/ release-and-build (push) Successful in 1m28s
2026-02-19 21:14:42 +01:00
Gitea Action
6c344959d4 build for v3.23 [skip ci] 2026-02-19 19:47:31 +00:00
9c13a5df26 build for v3.23
All checks were successful
/ release-and-build (push) Successful in 1m31s
2026-02-19 19:46:08 +00:00
Gitea Action
c109594ddb build for alpine v3.22 [skip ci] 2026-02-19 19:42:48 +00:00
23e25a5096 build for alpine v3.22
All checks were successful
/ release-and-build (push) Successful in 1m36s
2026-02-19 20:40:33 +01:00
Gitea Action
8292e075a0 fixed username to pi [skip ci] 2026-02-18 01:10:00 +00:00
9f61a307cc fixed username to pi
All checks were successful
/ release-and-build (push) Successful in 1m29s
2026-02-18 01:08:40 +00:00
Gitea Action
ef48d62d59 fixed execution-rights to run files in s6-overlay [skip ci] 2026-02-18 00:51:30 +00:00
65833dc3a7 fixed execution-rights to run files in s6-overlay
All checks were successful
/ release-and-build (push) Successful in 1m32s
2026-02-18 01:49:58 +01:00
cb43774a14 fixed execution-rights to run files in s6-overlay 2026-02-18 01:45:52 +01:00
11 changed files with 97 additions and 67 deletions

View File

@@ -1,11 +1,11 @@
on: on:
push: push:
branches: branches:
- 'main' - "main"
tags: tags:
- '*' - "*"
schedule: schedule:
- cron: '0 5 * * 0' - cron: "0 5 * * 0"
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@@ -29,6 +29,10 @@ jobs:
echo "push_targets=$PUSH" >> $GITHUB_OUTPUT echo "push_targets=$PUSH" >> $GITHUB_OUTPUT
LATEST_FLAG="${BUILD_TAG_LATEST:-n}"
LATEST_FLAG_LOWER=$(echo "$LATEST_FLAG" | tr '[:upper:]' '[:lower:]')
echo "tag_latest=$LATEST_FLAG_LOWER" >> $GITHUB_OUTPUT
ARGS_HASH=$(grep "^BUILD_" buildargs.env | sha256sum | cut -d' ' -f1) ARGS_HASH=$(grep "^BUILD_" buildargs.env | sha256sum | cut -d' ' -f1)
echo "build_args_hash=$ARGS_HASH" >> $GITHUB_OUTPUT echo "build_args_hash=$ARGS_HASH" >> $GITHUB_OUTPUT
@@ -117,6 +121,9 @@ jobs:
BASE=${{ steps.prep.outputs.base_image }} BASE=${{ steps.prep.outputs.base_image }}
REPO_PURE=${{ steps.prep.outputs.repo_pure }} REPO_PURE=${{ steps.prep.outputs.repo_pure }}
# NEU: Wir laden unser Flag rein
TAG_LATEST="${{ steps.prep.outputs.tag_latest }}"
set -a set -a
source <(grep -v '^#' buildargs.env | sed 's/\r$//') source <(grep -v '^#' buildargs.env | sed 's/\r$//')
set +a set +a
@@ -146,15 +153,33 @@ jobs:
--pull --platform linux/arm64 -f Dockerfile.aarch64 \ --pull --platform linux/arm64 -f Dockerfile.aarch64 \
--label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . --label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push .
# --- NEU: Dynamische Tags für Gitea ---
GITEA_TAGS=("-t" "$IMAGE_GITEA:$TAG")
if [ "$TAG_LATEST" == "y" ]; then
GITEA_TAGS+=("-t" "$IMAGE_GITEA:latest")
echo "🏷️ Gitea: 'latest' tag will be set."
else
echo " Gitea: 'latest' tag will not be set."
fi
docker buildx imagetools create \ docker buildx imagetools create \
--annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \ --annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \
-t $IMAGE_GITEA:$TAG -t $IMAGE_GITEA:latest $IMAGE_GITEA:tmp-amd64 $IMAGE_GITEA:tmp-arm64 "${GITEA_TAGS[@]}" $IMAGE_GITEA:tmp-amd64 $IMAGE_GITEA:tmp-arm64
if [[ "$PUSH" == *"dockerhub"* ]]; then if [[ "$PUSH" == *"dockerhub"* ]]; then
DOCKERHUB_REPO="${{ secrets.DOCKERHUB_USERNAME }}/$REPO_PURE" DOCKERHUB_REPO="${{ secrets.DOCKERHUB_USERNAME }}/$REPO_PURE"
DH_TAGS=("-t" "$DOCKERHUB_REPO:$TAG")
if [ "$TAG_LATEST" == "y" ]; then
DH_TAGS+=("-t" "$DOCKERHUB_REPO:latest")
echo "🏷️ Docker Hub: 'latest' tag will be set."
else
echo " Docker Hub: 'latest' tag will not be set."
fi
docker buildx imagetools create \ docker buildx imagetools create \
--annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \ --annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \
-t $DOCKERHUB_REPO:$TAG -t $DOCKERHUB_REPO:latest $IMAGE_GITEA:tmp-amd64 $IMAGE_GITEA:tmp-arm64 "${DH_TAGS[@]}" $IMAGE_GITEA:tmp-amd64 $IMAGE_GITEA:tmp-arm64
fi fi
- name: Update Documentation and Compose - name: Update Documentation and Compose
@@ -407,14 +432,14 @@ jobs:
- name: Cleanup Temporary Registry Tags (Gitea) - name: Cleanup Temporary Registry Tags (Gitea)
if: steps.check_changes.outputs.should_build == 'true' if: steps.check_changes.outputs.should_build == 'true'
run: | run: |
TOKEN="${{ secrets.GIT_TOKEN }}" TOKEN="${{ secrets.GIT_TOKEN }}"
ORG_NAME=$(echo "${{ gitea.repository }}" | cut -d'/' -f1) ORG_NAME=$(echo "${{ gitea.repository }}" | cut -d'/' -f1)
REPO_NAME=$(echo "${{ gitea.repository }}" | cut -d'/' -f2) REPO_NAME=$(echo "${{ gitea.repository }}" | cut -d'/' -f2)
for t in tmp-amd64 tmp-arm64; do for t in tmp-amd64 tmp-arm64; do
curl -s -X DELETE "https://git.pi-farm.de/api/v1/packages/$ORG_NAME/container/$REPO_NAME/$t" -H "Authorization: token $TOKEN" curl -s -X DELETE "https://git.pi-farm.de/api/v1/packages/$ORG_NAME/container/$REPO_NAME/$t" -H "Authorization: token $TOKEN"
curl -s -X DELETE "https://git.pi-farm.de/api/v1/packages/${ORG_NAME,,}/container/${REPO_NAME,,}/$t" -H "Authorization: token $TOKEN" curl -s -X DELETE "https://git.pi-farm.de/api/v1/packages/${ORG_NAME,,}/container/${REPO_NAME,,}/$t" -H "Authorization: token $TOKEN"
done done
- name: Cleanup Docker Artifacts - name: Cleanup Docker Artifacts
if: always() if: always()

View File

@@ -12,8 +12,8 @@ This repository is built and pushed automatically.
### 🏗️ Platform Support ### 🏗️ Platform Support
| Architecture | Status | Base Image | Build Date | | Architecture | Status | Base Image | Build Date |
| :--- | :--- | :--- | :--- | | :--- | :--- | :--- | :--- |
| x86_64 (amd64) | ✅ Active | alpine:3.23 | 18.02.2026 00:55 | | x86_64 (amd64) | ✅ Active | alpine:3.23 | 25.02.2026 15:26 |
| aarch64 (arm64) | ✅ Active | alpine:3.23 | 18.02.2026 00:55 | | aarch64 (arm64) | ✅ Active | alpine:3.23 | 25.02.2026 15:26 |
### 🚀 Docker Pull ### 🚀 Docker Pull
```bash ```bash
@@ -44,15 +44,17 @@ docker run -d \
git.pi-farm.de/pi-farm/docker-baseimage-alpine:3.23 git.pi-farm.de/pi-farm/docker-baseimage-alpine:3.23
``` ```
*Last updated on: 18.02.2026 00:55* *Last updated on: 25.02.2026 15:26*
### 📜 Version History ### 📜 Version History
| Version | Date | Status | | Version | Date | Status |
| :--- | :--- | :--- | | :--- | :--- | :--- |
| **3.23** | 18.02.2026 00:55 | update workflow to fix docker run syntax ✅ | | **3.23** | 25.02.2026 15:26 | switch to s6-overlay version 3.2.2.0 ✅ |
| **3.23** | 18.02.2026 00:14 | edit workflow ✅ | | **3.23** | 19.02.2026 23:08 | test fix for latest-tag in workflow on building v3.23 ✅ |
| **3.23** | 18.02.2026 00:10 | update on buildargs.env ✅ | | **3.22** | 19.02.2026 23:02 | add fix for latest-tag in workflow ✅ |
| **3.23** | 18.02.2026 00:00 | ✅ | | **3.23** | 19.02.2026 21:20 | build for alpine v3.23 ✅ |
| **3.23** | 17.02.2026 23:50 | ✅ | | **3.21** | 19.02.2026 21:16 | build for alpine v3.21 ✅ |
| **3.23** | 19.02.2026 20:47 | build for v3.23 ✅ |
| **3.22** | 19.02.2026 20:42 | build for alpine v3.22 ✅ |
| **3.23** | 17.02.2026 23:44 | update on Readme.md and workflow ✅ | | **3.23** | 17.02.2026 23:44 | update on Readme.md and workflow ✅ |
| **3.23** | 14.02.2026 01:06 | alpine 3.23 ✅ | | **3.23** | 14.02.2026 01:06 | alpine 3.23 ✅ |

View File

@@ -1,7 +1,9 @@
| **3.23** | 18.02.2026 00:55 | update workflow to fix docker run syntax ✅ | | **3.23** | 25.02.2026 15:26 | switch to s6-overlay version 3.2.2.0 ✅ |
| **3.23** | 18.02.2026 00:14 | edit workflow ✅ | | **3.23** | 19.02.2026 23:08 | test fix for latest-tag in workflow on building v3.23 ✅ |
| **3.23** | 18.02.2026 00:10 | update on buildargs.env ✅ | | **3.22** | 19.02.2026 23:02 | add fix for latest-tag in workflow ✅ |
| **3.23** | 18.02.2026 00:00 | ✅ | | **3.23** | 19.02.2026 21:20 | build for alpine v3.23 ✅ |
| **3.23** | 17.02.2026 23:50 | ✅ | | **3.21** | 19.02.2026 21:16 | build for alpine v3.21 ✅ |
| **3.23** | 19.02.2026 20:47 | build for v3.23 ✅ |
| **3.22** | 19.02.2026 20:42 | build for alpine v3.22 ✅ |
| **3.23** | 17.02.2026 23:44 | update on Readme.md and workflow ✅ | | **3.23** | 17.02.2026 23:44 | update on Readme.md and workflow ✅ |
| **3.23** | 14.02.2026 01:06 | alpine 3.23 ✅ | | **3.23** | 14.02.2026 01:06 | alpine 3.23 ✅ |

View File

@@ -1,4 +1,5 @@
BUILD_TAG=3.23 BUILD_TAG=3.23
BUILD_TAG_LATEST=y
BUILD_BASE_IMAGE=alpine:${BUILD_TAG} BUILD_BASE_IMAGE=alpine:${BUILD_TAG}
# Examples for BASE_IMAGE # Examples for BASE_IMAGE
# alpine:${BUILD_TAG} # alpine:${BUILD_TAG}
@@ -7,7 +8,7 @@ BUILD_ALPINE_ARCH_AMD64=x86_64
BUILD_ALPINE_ARCH_AARCH64=aarch64 BUILD_ALPINE_ARCH_AARCH64=aarch64
BUILD_S6_ARCH_amd64=x86_64 BUILD_S6_ARCH_amd64=x86_64
BUILD_S6_ARCH_aarch64=aarch64 BUILD_S6_ARCH_aarch64=aarch64
BUILD_S6_OVERLAY_VERSION=3.2.0.2 BUILD_S6_OVERLAY_VERSION=3.2.2.0
BUILD_MAINTAINER=pi-farm BUILD_MAINTAINER=pi-farm
BUILD_APP_VERSION=v${BUILD_TAG} BUILD_APP_VERSION=v${BUILD_TAG}
BUILD_APP_NAME=baseimage-alpine BUILD_APP_NAME=baseimage-alpine

20
root/etc/s6-overlay/s6-rc.d/init-adduser/run Normal file → Executable file
View File

@@ -5,13 +5,13 @@ PUID=${PUID:-911}
PGID=${PGID:-911} PGID=${PGID:-911}
if [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; then if [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; then
USERHOME=$(grep abc /etc/passwd | cut -d ":" -f6) USERHOME=$(grep pi /etc/passwd | cut -d ":" -f6)
usermod -d "/root" abc usermod -d "/root" pi
groupmod -o -g "${PGID}" abc groupmod -o -g "${PGID}" pi
usermod -o -u "${PUID}" abc usermod -o -u "${PUID}" pi
usermod -d "${USERHOME}" abc usermod -d "${USERHOME}" pi
fi fi
if { [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; } || [[ ! ${LSIO_FIRST_PARTY} = "true" ]]; then if { [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; } || [[ ! ${LSIO_FIRST_PARTY} = "true" ]]; then
@@ -26,8 +26,8 @@ GID/UID
───────────────────────────────────────' ───────────────────────────────────────'
if [[ -z ${LSIO_NON_ROOT_USER} ]]; then if [[ -z ${LSIO_NON_ROOT_USER} ]]; then
echo " echo "
User UID: $(id -u abc) User UID: $(id -u pi)
User GID: $(id -g abc) User GID: $(id -g pi)
───────────────────────────────────────" ───────────────────────────────────────"
else else
echo " echo "
@@ -43,7 +43,7 @@ if [[ -f /build_version ]]; then
fi fi
if [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; then if [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; then
lsiown abc:abc /app lsiown pi:pi /app
lsiown abc:abc /config lsiown pi:pi /config
lsiown abc:abc /defaults lsiown pi:pi /defaults
fi fi

0
root/etc/s6-overlay/s6-rc.d/init-crontab-config/run Normal file → Executable file
View File

0
root/etc/s6-overlay/s6-rc.d/init-custom-files/run Normal file → Executable file
View File

0
root/etc/s6-overlay/s6-rc.d/init-device-perms/run Normal file → Executable file
View File

0
root/etc/s6-overlay/s6-rc.d/init-envfile/run Normal file → Executable file
View File

0
root/etc/s6-overlay/s6-rc.d/init-migrations/run Normal file → Executable file
View File

0
root/etc/s6-overlay/s6-rc.d/svc-cron/run Normal file → Executable file
View File