runner: Gitea-Actions-Runner builder-1 ergaenzen

gitea/act_runner:0.6.1, Labels linux-build (electronuserland/builder:22)
und win-wine (Wine-Cross-Builds fuer Windows). Kapazitaet 1 und
Job-Limits 2200m/1.5cpu wegen knapper Host-Ressourcen (2 Kerne, 3.7 GiB,
kein Swap). Gitea-Zugriff der Jobs via Host-Gateway-Hairpin, Actions-
Cache auf 172.17.0.1:8088. Registrierungs-Token kommt aus .env
(gitignored), Vorlage .env.example.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Claude
2026-07-30 15:56:36 +02:00
parent d845041a25
commit 4a43589e52
3 changed files with 62 additions and 1 deletions
+5
View File
@@ -0,0 +1,5 @@
# Vorlage: nach .env kopieren und Wert setzen.
# Nur fuer die Runner-Erstregistrierung noetig, danach wieder leeren.
# Token erzeugen:
# docker exec -u git thread-net-git-gitea-1 gitea actions generate-runner-token
RUNNER_TOKEN='changeme'
+34 -1
View File
@@ -1,4 +1,4 @@
# Stack "thread-net-git" (CFGMON): Traefik + Gitea + cAdvisor. # Stack "thread-net-git" (CFGMON): Traefik + Gitea + cAdvisor + Actions-Runner.
# Abgeloest aus Portainer (Stack-ID 8) am 2026-07-30. # Abgeloest aus Portainer (Stack-ID 8) am 2026-07-30.
# #
# WICHTIG: Der Compose-Projektname MUSS "thread-net-git" bleiben (siehe # WICHTIG: Der Compose-Projektname MUSS "thread-net-git" bleiben (siehe
@@ -78,6 +78,39 @@ services:
networks: networks:
- traefik - traefik
runner:
# Offizielles Image heisst gitea/act_runner (nicht gitea/runner).
image: gitea/act_runner:0.6.1
container_name: gitea-runner
restart: always
depends_on:
- gitea
environment:
GITEA_INSTANCE_URL: https://rohana.axion1337.de
# Nur fuer die Erstregistrierung noetig (aus .env); danach liegt die
# Runner-Identitaet in ./runner-data/.runner und .env kann geleert werden.
GITEA_RUNNER_REGISTRATION_TOKEN: ${RUNNER_TOKEN:-}
GITEA_RUNNER_NAME: builder-1
GITEA_RUNNER_LABELS: >-
linux-build:docker://electronuserland/builder:22,
win-wine:docker://electronuserland/builder:wine
CONFIG_FILE: /config.yaml
TZ: Europe/Berlin
extra_hosts:
# Hairpin ueber das Docker-Host-Gateway: umgeht die Cloud-Firewall,
# das Traefik-Zertifikat bleibt dabei gueltig.
- "rohana.axion1337.de:host-gateway"
ports:
# Actions-Cache: nur auf dem Docker-Gateway gebunden, damit ihn
# Job-Container erreichen, aber nichts von aussen.
- "172.17.0.1:8088:8088"
volumes:
- ./runner/config.yaml:/config.yaml:ro
- ./runner-data:/data
- /var/run/docker.sock:/var/run/docker.sock
networks:
- default
networks: networks:
traefik: traefik:
external: true external: true
+23
View File
@@ -0,0 +1,23 @@
log:
level: info
runner:
# 2 parallele Electron-Builds auf 2 Kernen / 3.7 GiB ohne Swap enden im
# OOM -- bei Host-Upgrade hochsetzen.
capacity: 1
timeout: 3h
cache:
enabled: true
host: "172.17.0.1"
port: 8088
container:
network: bridge
privileged: false
# --add-host: Job-Container erreichen Gitea ueber das Host-Gateway
# (Firewall-Hairpin, siehe docker-compose.yml).
# --memory/--cpus: Limits fuer die Job-Container -- sie laufen als
# Siblings ueber docker.sock, Limits am Runner-Container selbst
# greifen fuer sie nicht.
options: "--add-host=rohana.axion1337.de:host-gateway --memory=2200m --memory-swap=2200m --cpus=1.5"