Files
enerport-web-app/docker/GITEA_SETUP.md
Murat Özkorkmaz 4c4589de6d
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m10s
CI Test
2025-10-17 22:33:30 +02:00

4.0 KiB

Gitea CI/CD Setup

Diese Anleitung erklärt, wie Sie die benötigten Variables und Secrets in Gitea für den automatischen Build und Push Workflow einrichten.

Gitea Workflow

Der Workflow .gitea/workflows/build-and-push.yaml wird automatisch ausgeführt und:

  1. Bestimmt automatisch den Image-Tag basierend auf dem Commit/Tag
  2. Baut das Docker Image
  3. Pusht das Image zur Gitea Registry

Automatische Tag-Generierung

Der IMAGE_TAG wird automatisch bestimmt:

Trigger Tag-Format Beispiel
Push auf main Branch latest latest
Git Tag (v*) Tag-Name v1.0.0, v2.1.3
Andere Branches {branch}-{sha} develop-a1b2c3d

Sie müssen IMAGE_TAG NICHT mehr als Variable setzen - es wird automatisch generiert!

Benötigte Gitea Variables und Secrets

Variables (öffentlich)

Navigieren Sie zu: Settings → Actions → Variables

Erstellen Sie folgende Variables:

Name Wert Beispiel
REGISTRY_URL URL der Gitea Registry gitea.moz-tech.de
NAMESPACE Namespace/Benutzer murat
REPO_NAME Repository Name enerport-web-app

Hinweis: IMAGE_TAG wird automatisch aus dem Commit/Tag generiert und muss nicht als Variable gesetzt werden.

Secrets (vertraulich)

Navigieren Sie zu: Settings → Actions → Secrets

Erstellen Sie folgende Secrets:

Name Wert Beispiel
CI_GITEA_USER Gitea Benutzername murat
CI_GITEA_TOKEN Gitea Access Token 74a7738116bfb99497a7781291efc5766901f497

Hinweis:

  • User und Token werden zusammen als Secrets gespeichert für eine sichere Authentifizierung
  • Der Prefix CI_GITEA_ ist erforderlich, da Gitea keine Variablen mit dem Prefix GITEA_ erlaubt

Access Token erstellen

  1. Navigieren Sie zu Settings → Applications → Manage Access Tokens
  2. Klicken Sie auf Generate New Token
  3. Geben Sie einen Namen ein (z.B. "Docker Registry")
  4. Wählen Sie die Berechtigung: write:package (für Registry Push)
  5. Klicken Sie auf Generate Token
  6. Kopieren Sie den Token und fügen Sie ihn als Secret CI_GITEA_TOKEN hinzu

Workflow testen

Nach der Einrichtung der Variables und Secrets:

Test 1: Push auf main Branch (erstellt 'latest' Tag)

git add .
git commit -m "Test CI/CD workflow"
git push origin main

→ Erstellt Image: gitea.moz-tech.de/murat/enerport-web-app:latest

Test 2: Git Tag erstellen (erstellt versioniertes Image)

git tag v1.0.0
git push origin v1.0.0

→ Erstellt Image: gitea.moz-tech.de/murat/enerport-web-app:v1.0.0

Workflow-Status überprüfen:

  • Navigieren Sie zu Actions in Ihrem Gitea Repository
  • Sie sollten den Workflow "Build and Push Docker Image" sehen
  • Klicken Sie darauf, um die Logs und den verwendeten Tag zu sehen

Troubleshooting

Fehler: "REGISTRY_URL not set in .env"

→ Stellen Sie sicher, dass alle Variables korrekt in Gitea eingerichtet sind

Fehler: "Failed to login to registry"

→ Überprüfen Sie das GITEA_TOKEN Secret und stellen Sie sicher, dass es die write:package Berechtigung hat

Fehler: "Image not found locally"

→ Der Build-Schritt ist fehlgeschlagen. Überprüfen Sie die Build-Logs im Workflow

Lokale Entwicklung vs. CI/CD

Lokal:

  • Verwendet die docker/.env Datei
  • Manuelle Ausführung von ./build.sh und ./push.sh

CI/CD (Gitea):

  • Erstellt .env Datei automatisch aus Gitea Variables/Secrets
  • Automatische Ausführung bei jedem Push auf main

Sicherheit

⚠️ Wichtig:

  • Committen Sie die docker/.env Datei NIEMALS in Git (bereits in .gitignore)
  • Das GITEA_TOKEN sollte nur als Secret gespeichert werden
  • Alle anderen Werte können als Variables gespeichert werden

Image Pull

Nach erfolgreichem Push können Sie das Image wie folgt pullen:

# Login zur Registry
docker login gitea.moz-tech.de -u murat

# Image pullen
docker pull gitea.moz-tech.de/murat/enerport-web-app:latest

# Container starten
docker run -p 8080:8080 gitea.moz-tech.de/murat/enerport-web-app:latest