Some checks failed
Security Vulnerability Scan / Check for Dependency Changes (push) Successful in 50s
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
Security Vulnerability Scan / Composer Security Audit (push) Has been skipped
🚀 Build & Deploy Image / Determine Build Necessity (push) Successful in 26s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Successful in 10s
🚀 Build & Deploy Image / Build Docker Image (push) Successful in 14s
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Failing after 41s
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
This commit changes a file in deployment/ to trigger the build workflow
2.5 KiB
2.5 KiB
CI Image auf Produktionsserver bauen
Problem
Der Gitea Runner auf dem Produktionsserver versucht, das php-ci:latest Image zu pullen, aber es existiert nicht in der Registry oder lokal. Der Fehler lautet:
Error response from daemon: pull access denied for php-ci, repository does not exist or may require 'docker login'
Lösung: Image direkt auf dem Produktionsserver bauen
Schritt 1: Auf den Produktionsserver verbinden
ssh user@production-server
Schritt 2: Zum Projektverzeichnis wechseln
cd /path/to/michaelschiemer
Schritt 3: CI Image bauen
cd deployment/gitea-runner
./build-ci-image-production.sh
Das Script:
- Baut das
php-ci:latestImage - Baut das
docker-build:latestImage - Lädt beide Images in den
gitea-runner-dindContainer
Schritt 4: Verifikation
-
Prüfe ob Images gebaut wurden:
docker images | grep -E "php-ci|docker-build" -
Prüfe ob Images in docker-dind geladen wurden:
docker exec gitea-runner-dind docker images | grep -E "php-ci|docker-build" -
Prüfe Runner Labels in Gitea UI:
- Gehe zu: https://git.michaelschiemer.de/admin/actions/runners
- Der Runner sollte das
php-ciLabel zeigen
-
Teste einen Workflow:
- Ein Workflow mit
runs-on: php-cisollte jetzt funktionieren
- Ein Workflow mit
Alternative: Ansible Playbook verwenden
Falls Ansible auf dem Produktionsserver verfügbar ist:
cd deployment/ansible
ansible-playbook -i inventory/production.yml \
playbooks/setup-gitea-runner-ci.yml \
-e "project_root=/path/to/michaelschiemer"
Troubleshooting
Image wird nicht in docker-dind gefunden:
- Stelle sicher, dass
gitea-runner-dindläuft:docker ps | grep docker-dind - Lade das Image manuell:
docker save php-ci:latest | docker exec -i gitea-runner-dind docker load
Runner zeigt php-ci Label nicht:
- Labels können nur bei der Registration geändert werden
- Runner neu registrieren:
cd deployment/gitea-runner ./unregister.sh ./register.sh
Build schlägt fehl:
- Prüfe Docker-Logs:
docker logs gitea-runner-dind - Stelle sicher, dass genug Speicherplatz vorhanden ist:
df -h - Prüfe Docker-Daemon:
docker info
Hinweise
- Das Image ist ca. 1.85GB groß - der Build kann einige Minuten dauern
- Stelle sicher, dass genug Speicherplatz auf dem Server vorhanden ist
- Das Image wird lokal gebaut und muss nicht in die Registry gepusht werden (wird direkt in docker-dind geladen)