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:
@@ -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
|
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
|
`config/runner.yaml` -> `container.options`), der Port `8088` des Cache-Servers ist
|
||||||
dafür auf dem Host veröffentlicht.
|
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
@@ -5,7 +5,7 @@ runner:
|
|||||||
|
|
||||||
cache:
|
cache:
|
||||||
enabled: true
|
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
|
# Service "cache"), erreichbar über den Docker-Host-Gateway (siehe container.options
|
||||||
# unten), unabhängig vom isolierten Netzwerk des jeweiligen Jobs.
|
# unten), unabhängig vom isolierten Netzwerk des jeweiligen Jobs.
|
||||||
external_server: "http://cachehost:8088/"
|
external_server: "http://cachehost:8088/"
|
||||||
|
|||||||
+8
-1
@@ -4,7 +4,8 @@ services:
|
|||||||
container_name: gitea_runner
|
container_name: gitea_runner
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
- cache
|
cache:
|
||||||
|
condition: service_healthy
|
||||||
environment:
|
environment:
|
||||||
CONFIG_FILE: /config.yaml
|
CONFIG_FILE: /config.yaml
|
||||||
GITEA_INSTANCE_URL: "${INSTANCE_URL}"
|
GITEA_INSTANCE_URL: "${INSTANCE_URL}"
|
||||||
@@ -31,3 +32,9 @@ services:
|
|||||||
- ./cache-secret:/run/cache-secret:ro
|
- ./cache-secret:/run/cache-secret:ro
|
||||||
ports:
|
ports:
|
||||||
- "8088:8088"
|
- "8088:8088"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "bash", "-c", "echo > /dev/tcp/127.0.0.1/8088"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 3s
|
||||||
|
retries: 10
|
||||||
|
start_period: 5s
|
||||||
|
|||||||
Reference in New Issue
Block a user