Files
Flaro/server/docker-compose.runner.yml
T
ScarriffleandClaude Opus 5 aa1e14cdab
Image bauen und veröffentlichen / image (push) Canceled after 0s
Der Runner fürs NAS, fertig zum Einsetzen
Gitea verteilt Arbeit nur, es baut nicht selbst. Der Workflow ist auf dem
Server und hat einen Lauf angelegt — der bleibt liegen, weil niemand ihn
ausführt. Das ist keine Eigenheit dieser Installation, sondern wie Gitea
Actions arbeitet.

`server/docker-compose.runner.yml` ist der fehlende Teil, und er gehört
**auf das NAS**: dort läuft Docker ohnehin, und damit braucht ein neues
Image nie wieder einen Arbeitsrechner.

Zwei Dinge darin sind nicht offensichtlich und stehen deshalb als Kommentar
daneben: der Docker-Socket ist der Kern — der Runner baut nicht selbst,
sondern lässt den Docker des NAS bauen, und wer in diesen Container kommt,
kann Docker auf dem NAS steuern. Und `GITEA_RUNNER_LABELS` muss
`ubuntu-latest` nennen, weil der Flaro-Workflow genau das in `runs-on`
verlangt; ohne die Zeile meldet sich der Runner mit anderen Marken an und
der Lauf findet ihn nicht.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-04 08:27:14 +02:00

45 lines
1.9 KiB
YAML

# Ein Gitea-Runner auf dem NAS.
#
# **Wozu.** Gitea verteilt Arbeit nur, es baut nicht selbst. Ohne einen
# registrierten Runner legt es bei jedem Push einen Lauf an, der dann
# liegenbleibt. Mit diesem hier baut das NAS das Flaro-Image selbst und legt
# es in die Registry desselben Gitea — danach braucht es keinen Arbeits-
# rechner mehr.
#
# **Das Token holst du dir vorher:**
# Gitea → Repo → Einstellungen → Actions → Runner → Neuen Runner erstellen
#
# Ein Runner auf Organisations- oder Serverebene bedient alle Repos; das
# Token dafür steht in der jeweiligen Verwaltung.
services:
runner:
image: gitea/act_runner:latest
container_name: gitea-runner
restart: unless-stopped
environment:
- GITEA_INSTANCE_URL=https://git.scarriffle.com
# Hier das Token aus der Gitea-Oberfläche eintragen.
- GITEA_RUNNER_REGISTRATION_TOKEN=
- GITEA_RUNNER_NAME=nas
# **Welche Marken dieser Runner bedient.** `ubuntu-latest` ist die, die
# der Flaro-Workflow in `runs-on` nennt. Ohne diese Zeile meldet sich
# der Runner mit den Vorgaben an, und ein Lauf findet ihn womöglich
# nicht.
- GITEA_RUNNER_LABELS=ubuntu-latest:docker://catthehacker/ubuntu:act-latest
volumes:
# **Der Docker-Socket ist der Kern.** Der Runner baut nicht selbst,
# sondern lässt den Docker des NAS bauen. Ohne ihn scheitert jeder
# Schritt, der ein Image anfasst.
#
# Das ist zugleich die Abwägung: wer in diesen Container kommt, kann
# Docker auf dem NAS steuern. Deshalb gehört er nicht ins Internet und
# nimmt nur Arbeit von deinem eigenen Gitea an.
- /var/run/docker.sock:/var/run/docker.sock
# Anmeldung und Zwischenstände. Ohne dieses Volume meldet sich der
# Runner nach jedem Neustart neu an, und in der Liste sammeln sich
# Karteileichen.
- /volume4/CRITICAL/Docker/gitea-runner:/data