Compare commits
1
Commits
863688c180
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e055999f0c
|
@@ -2,3 +2,6 @@ INSTANCE_URL=https://gitea.creative-dragonslayer.de
|
|||||||
REGISTRATION_TOKEN=ABC
|
REGISTRATION_TOKEN=ABC
|
||||||
RUNNER_NAME=gitea_main
|
RUNNER_NAME=gitea_main
|
||||||
RUNNER_LABELS=
|
RUNNER_LABELS=
|
||||||
|
# Optional: überschreibt runner.capacity aus config/runner.yaml zur Laufzeit.
|
||||||
|
# Leer lassen, um den Wert aus config/runner.yaml zu verwenden.
|
||||||
|
RUNNER_CAPACITY=
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ Enthält eine einfache docker-compose, um einen gitea_runner zu starten.
|
|||||||
|
|
||||||
- `config/runner.yaml` — Konfiguration des Runners
|
- `config/runner.yaml` — Konfiguration des Runners
|
||||||
- `config/cache.yaml` — Konfiguration des Cache-Servers
|
- `config/cache.yaml` — Konfiguration des Cache-Servers
|
||||||
|
- `entrypoint.sh` — Wrapper-Entrypoint des Runner-Containers (siehe „Capacity über .env“ unten)
|
||||||
- `data/runner` — persistenter Zustand des Runners (u. a. `.runner`-Registrierungsdatei)
|
- `data/runner` — persistenter Zustand des Runners (u. a. `.runner`-Registrierungsdatei)
|
||||||
- `data/cache` — persistente Cache-Daten
|
- `data/cache` — persistente Cache-Daten
|
||||||
- `cache-secret` — gemeinsames Secret für Runner ↔ Cache-Server (siehe unten, **nicht** in Git)
|
- `cache-secret` — gemeinsames Secret für Runner ↔ Cache-Server (siehe unten, **nicht** in Git)
|
||||||
@@ -50,6 +51,16 @@ Falls vorher schon ein eigenständiger Cache-Ordner existierte (z. B. unter
|
|||||||
`data/runner/cache` oder `cache-data/` aus einer Zwischenversion), diesen entsprechend
|
`data/runner/cache` oder `cache-data/` aus einer Zwischenversion), diesen entsprechend
|
||||||
nach `data/cache` verschieben.
|
nach `data/cache` verschieben.
|
||||||
|
|
||||||
|
## Capacity über .env
|
||||||
|
|
||||||
|
Das offizielle `gitea/runner`-Image kennt keine Umgebungsvariable für `runner.capacity` —
|
||||||
|
dieser Wert lässt sich nur über die `config.yaml` setzen. `entrypoint.sh` schließt diese
|
||||||
|
Lücke: beim Containerstart wird `config/runner.yaml` nach `/data/config.runtime.yaml`
|
||||||
|
kopiert und dort, falls `RUNNER_CAPACITY` in der `.env` gesetzt ist, per
|
||||||
|
`gitea-runner config set` überschrieben, bevor das eigentliche `run.sh` des Images
|
||||||
|
gestartet wird. Ist `RUNNER_CAPACITY` leer, bleibt der Wert aus `config/runner.yaml`
|
||||||
|
unverändert.
|
||||||
|
|
||||||
## Cache-Service
|
## Cache-Service
|
||||||
|
|
||||||
Der Cache läuft als eigener Service (`cache` in `docker-compose.yaml`), getrennt vom
|
Der Cache läuft als eigener Service (`cache` in `docker-compose.yaml`), getrennt vom
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
runner:
|
runner:
|
||||||
# Bis zu 5 Jobs gleichzeitig. container.network bleibt leer, damit jeder Job weiterhin
|
# Bis zu 5 Jobs gleichzeitig. container.network bleibt leer, damit jeder Job weiterhin
|
||||||
# sein eigenes isoliertes Docker-Netzwerk bekommt (kein gegenseitiger Zugriff der Jobs).
|
# sein eigenes isoliertes Docker-Netzwerk bekommt (kein gegenseitiger Zugriff der Jobs).
|
||||||
|
# Standardwert, falls RUNNER_CAPACITY in der .env nicht gesetzt ist (siehe entrypoint.sh).
|
||||||
capacity: 5
|
capacity: 5
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
|
|||||||
+4
-1
@@ -6,14 +6,17 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
cache:
|
cache:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
entrypoint: ["/sbin/tini", "--", "bash", "/entrypoint.sh"]
|
||||||
environment:
|
environment:
|
||||||
CONFIG_FILE: /config.yaml
|
CONFIG_FILE: /config.yaml
|
||||||
|
RUNNER_CAPACITY: "${RUNNER_CAPACITY:-}"
|
||||||
GITEA_INSTANCE_URL: "${INSTANCE_URL}"
|
GITEA_INSTANCE_URL: "${INSTANCE_URL}"
|
||||||
GITEA_RUNNER_REGISTRATION_TOKEN: "${REGISTRATION_TOKEN}"
|
GITEA_RUNNER_REGISTRATION_TOKEN: "${REGISTRATION_TOKEN}"
|
||||||
GITEA_RUNNER_NAME: "${RUNNER_NAME}"
|
GITEA_RUNNER_NAME: "${RUNNER_NAME}"
|
||||||
GITEA_RUNNER_LABELS: "${RUNNER_LABELS}"
|
GITEA_RUNNER_LABELS: "${RUNNER_LABELS}"
|
||||||
volumes:
|
volumes:
|
||||||
- ./config/runner.yaml:/config.yaml
|
- ./entrypoint.sh:/entrypoint.sh:ro
|
||||||
|
- ./config/runner.yaml:/config.yaml:ro
|
||||||
- ./data/runner:/data
|
- ./data/runner:/data
|
||||||
- ./cache-secret:/run/cache-secret:ro
|
- ./cache-secret:/run/cache-secret:ro
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
|||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Kopiert die (read-only gemountete) config/runner.yaml in einen beschreibbaren
|
||||||
|
# Pfad in /data und wendet dort optional RUNNER_CAPACITY aus der .env an, bevor
|
||||||
|
# das eigentliche Runner-Entrypoint-Skript des Images gestartet wird.
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
SOURCE_CONFIG="${CONFIG_FILE:-/config.yaml}"
|
||||||
|
RUNTIME_CONFIG="/data/config.runtime.yaml"
|
||||||
|
|
||||||
|
mkdir -p /data
|
||||||
|
cp "$SOURCE_CONFIG" "$RUNTIME_CONFIG"
|
||||||
|
|
||||||
|
if [[ -n "${RUNNER_CAPACITY:-}" ]]; then
|
||||||
|
gitea-runner config set -c "$RUNTIME_CONFIG" runner.capacity "$RUNNER_CAPACITY"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export CONFIG_FILE="$RUNTIME_CONFIG"
|
||||||
|
exec /usr/local/bin/run.sh
|
||||||
Reference in New Issue
Block a user