DragonSlayer_14andClaude Sonnet 5 863688c180 Fix: Nachbesserungen aus Code-Review am Cache-Setup
- Healthcheck für den Cache-Server, damit der Runner (depends_on:
  condition: service_healthy) wirklich wartet, bis der Cache-Server auf
  Port 8088 Verbindungen annimmt, statt nur den Container-Start abzuwarten
- Veralteten Kommentarverweis auf "cache-config.yaml" korrigiert zu
  "config/cache.yaml"
- README: Hinweis ergänzt, dass Port 8088 zwingend auf allen
  Host-Interfaces lauschen muss (sonst für Job-Container unerreichbar) und
  daher per Host-Firewall gegen Zugriff von außen abgesichert werden sollte

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014kFWpJ4p1jQ2pJf3S13FWE
2026-09-10 00:07:57 +02:00
2026-06-08 17:29:40 +02:00
2026-06-08 15:10:37 +00:00

gitea_runner

Enthält eine einfache docker-compose, um einen gitea_runner zu starten.

Verzeichnisstruktur

  • config/runner.yaml — Konfiguration des Runners
  • config/cache.yaml — Konfiguration des Cache-Servers
  • data/runner — persistenter Zustand des Runners (u. a. .runner-Registrierungsdatei)
  • data/cache — persistente Cache-Daten
  • cache-secret — gemeinsames Secret für Runner ↔ Cache-Server (siehe unten, nicht in Git)

Einrichtung

Vor dem ersten Start muss auf dem Host ein Secret für die Authentifizierung zwischen Runner und Cache-Server erzeugt werden:

openssl rand -hex 32 > cache-secret
chmod 600 cache-secret

Diese Datei darf nicht committet werden (sie ist über .gitignore ausgeschlossen) und muss auf jedem Host, auf dem dieses Setup läuft, individuell erzeugt werden.

Migration von einer älteren Version dieses Compose-Setups

Frühere Versionen legten die Runner-Daten direkt unter ./data ab und hatten kein config/-Verzeichnis. Beim Umstieg auf diese Version muss der bestehende Datenordner verschoben werden, sonst registriert sich der Runner erneut (verwaiste Registrierung auf der Gitea-Instanz) und der bisherige Cache geht verloren:

# Runner vorher stoppen
docker compose down

# Repository pullen
git pull

# Vorhandene Daten (u. a. die .runner-Datei) nach data/runner verschieben
mv data data_old
mkdir -p data
mv data_old data/runner

# Danach ganz normal wieder starten
docker compose up -d

Falls vorher schon ein eigenständiger Cache-Ordner existierte (z. B. unter data/runner/cache oder cache-data/ aus einer Zwischenversion), diesen entsprechend nach data/cache verschieben.

Cache-Service

Der Cache läuft als eigener Service (cache in docker-compose.yaml), getrennt vom Runner, damit die bis zu 5 parallel laufenden Jobs weiterhin jeweils ihr eigenes, isoliertes Docker-Netzwerk bekommen und sich nicht gegenseitig erreichen können. Job-Container erreichen den Cache-Server trotzdem über den Docker-Host (cachehost wird per --add-host=cachehost:host-gateway auf das Host-Gateway gemappt, siehe config/runner.yaml -> container.options), der Port 8088 des Cache-Servers ist dafür auf dem Host veröffentlicht.

Achtung: Da Job-Container den Cache-Server nur über den Host erreichen können, muss Port 8088 auf allen Host-Interfaces lauschen (0.0.0.0) — eine engere Bindung (z. B. nur 127.0.0.1) würde den Cache für Jobs unerreichbar machen. Der Zugriff ist zwar durch das Secret in cache-secret geschützt, trotzdem sollte Port 8088 per Host-Firewall von außen (Internet/fremdes LAN) blockiert werden, z. B.:

ufw deny 8088/tcp
S
Description
Enthält eine einfache docker-compose, um einen gitea_runner zu starten.
Readme MIT
37 KiB