Der Runner fürs NAS, fertig zum Einsetzen
Image bauen und veröffentlichen / image (push) Canceled after 0s

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>
This commit is contained in:
Scarriffle
2026-10-04 08:27:14 +02:00
co-authored by Claude Opus 5
parent fbf4a29461
commit aa1e14cdab
3 changed files with 63 additions and 13 deletions
+11 -11
View File
@@ -55,18 +55,18 @@ Einmal einrichten, danach ist jedes Update ein `docker compose pull`.
baut Gitea das Image für **beide** Architekturen und legt es ab — ohne dass
jemand daran denken muss, und ohne Anmeldung am Arbeitsrechner.
**Voraussetzung ist ein registrierter Act-Runner.** Hat dein Gitea keinen,
passiert nichts; dann gilt A2. Nachsehen unter
*Einstellungen → Actions → Runner*. Ein Runner lässt sich als Container
neben Gitea betreiben:
**Voraussetzung ist ein registrierter Act-Runner.** Gitea verteilt Arbeit
nur, es baut nicht selbst: ohne Runner legt es bei jedem Push einen Lauf an,
der dann liegenbleibt. Nachsehen unter
*Repo → Einstellungen → Actions → Runner*.
```bash
docker run -d --restart unless-stopped --name gitea-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
-e GITEA_INSTANCE_URL=https://git.scarriffle.com \
-e GITEA_RUNNER_REGISTRATION_TOKEN=<Token aus den Einstellungen> \
gitea/act_runner:latest
```
Der Runner gehört **auf das NAS** — dort läuft Docker ohnehin, und damit
braucht es für ein neues Image nie wieder einen Arbeitsrechner. Fertig
vorbereitet liegt er in `server/docker-compose.runner.yml`; hineingehört nur
das Registrierungstoken aus derselben Gitea-Seite.
Danach erscheint der Runner in der Liste, und der wartende Lauf startet —
oder spätestens der nächste Push.
#### A2 · Von Hand vom Arbeitsrechner