rmm2/.gitea/workflows/docker-publish.yml
cynfo3000 3afd5c8445
Some checks failed
Docker Images bauen und pushen / build-and-push (push) Has been cancelled
feat: fertige Docker Images via Gitea Actions + Runtime-Konfiguration
CI/CD:
- .gitea/workflows/docker-publish.yml: baut + pusht bei Push auf release und Tags
- Images: git.cynfo.net/christian/rmm2/backend:latest + frontend:latest
- Gitea Secrets: REGISTRY_USER + REGISTRY_PASSWORD gesetzt

Runtime-Konfiguration (kein Rebuild bei IP-Aenderung):
- frontend/docker-entrypoint.sh: generiert runtime-config.js aus ENV-Vars beim Start
- frontend/src/config.js: window.__RMM_CONFIG__ (Docker) vor Vite-ENV (in .gitignore, nicht im release-Commit)
- frontend/public/runtime-config.js: leerer Fallback fuer lokale Entwicklung
- frontend/index.html: laedt /runtime-config.js vor dem App-Bundle

docker-compose:
- Nutzt fertige Images aus der Gitea Registry
- docker-compose.build.yml: Override fuer lokalen Build
- Alle Frontend-Werte via ENV zur Laufzeit
2026-03-08 19:42:56 +01:00

66 lines
1.9 KiB
YAML

name: Docker Images bauen und pushen
on:
push:
branches:
- release
tags:
- "v*"
env:
REGISTRY: git.cynfo.net
IMAGE_BACKEND: git.cynfo.net/christian/rmm2/backend
IMAGE_FRONTEND: git.cynfo.net/christian/rmm2/frontend
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login in Gitea Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Docker Buildx einrichten
uses: docker/setup-buildx-action@v3
- name: Image-Tag bestimmen
id: meta
run: |
if [[ "${{ github.ref }}" == refs/tags/* ]]; then
TAG="${{ github.ref_name }}"
else
TAG="latest"
fi
echo "tag=${TAG}" >> $GITHUB_OUTPUT
- name: Backend bauen und pushen
uses: docker/build-push-action@v5
with:
context: ./backend
push: true
tags: |
${{ env.IMAGE_BACKEND }}:${{ steps.meta.outputs.tag }}
${{ env.IMAGE_BACKEND }}:latest
cache-from: type=registry,ref=${{ env.IMAGE_BACKEND }}:buildcache
cache-to: type=registry,ref=${{ env.IMAGE_BACKEND }}:buildcache,mode=max
- name: Frontend bauen und pushen
uses: docker/build-push-action@v5
with:
context: ./frontend
push: true
tags: |
${{ env.IMAGE_FRONTEND }}:${{ steps.meta.outputs.tag }}
${{ env.IMAGE_FRONTEND }}:latest
# BACKEND_HOST ist zur Laufzeit nicht bekannt — wird im Compose via Env gesetzt
# Wer eigene Images braucht: docker compose build
cache-from: type=registry,ref=${{ env.IMAGE_FRONTEND }}:buildcache
cache-to: type=registry,ref=${{ env.IMAGE_FRONTEND }}:buildcache,mode=max