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
This commit is contained in:
2026-09-10 00:07:57 +02:00
co-authored by Claude Sonnet 5
parent e26481d8df
commit 863688c180
3 changed files with 19 additions and 2 deletions
+10
View File
@@ -59,3 +59,13 @@ Job-Container erreichen den Cache-Server trotzdem über den Docker-Host (`cacheh
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.:
```sh
ufw deny 8088/tcp
```
+1 -1
View File
@@ -5,7 +5,7 @@ runner:
cache:
enabled: true
# Dedizierter, separater Cache-Server (siehe cache-config.yaml + docker-compose.yaml,
# Dedizierter, separater Cache-Server (siehe config/cache.yaml + docker-compose.yaml,
# Service "cache"), erreichbar über den Docker-Host-Gateway (siehe container.options
# unten), unabhängig vom isolierten Netzwerk des jeweiligen Jobs.
external_server: "http://cachehost:8088/"
+8 -1
View File
@@ -4,7 +4,8 @@ services:
container_name: gitea_runner
restart: unless-stopped
depends_on:
- cache
cache:
condition: service_healthy
environment:
CONFIG_FILE: /config.yaml
GITEA_INSTANCE_URL: "${INSTANCE_URL}"
@@ -31,3 +32,9 @@ services:
- ./cache-secret:/run/cache-secret:ro
ports:
- "8088:8088"
healthcheck:
test: ["CMD", "bash", "-c", "echo > /dev/tcp/127.0.0.1/8088"]
interval: 5s
timeout: 3s
retries: 10
start_period: 5s