fix: harden Forgejo runner lifecycle

- README.md: document full runner configuration, isolated state, and cleanup settings
- IDEA.md: N/A - no user-facing product behavior change
- TODO.AI.md: record runner cleanup and runtime verification status
- rootfs/usr/local/bin/cleanup-runners: add safe stale Docker and act-cache cleanup
- rootfs/usr/local/bin/start-runners: propagate per-runner config and report daemon failures
- rootfs/usr/local/etc/docker/init.d/05-dockerd.sh: seed Docker config without overwriting user files
- rootfs/usr/local/etc/docker/init.d/08-forgejo.sh: seed Forgejo config without overwriting user files
- rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh: seed runner config safely and schedule validated cleanup
This commit is contained in:
casjay committed 2026-10-05 10:21:09 -04:00
1 parent 67db5abd86
commit 67d9624809
7 files changed
+227 -23

No files matched your search

+9 -2
View File
@@ -142,8 +142,15 @@ networks:
| `RUNNERS_START` | `5` | Number of act\_runner instances to register |
| `RUNNER_CACHE_PORT` | `44015` | Port for the act\_runner cache server |
| `RUNNER_IP_ADDRESS` | container IP | IP address act\_runner registers with Forgejo |
| `RUNNER_DEFAULT_HOME` | `/config/act_runner/forgejo` | Directory where runner registration state is stored |
| `RUNNER_CONFIG_NAME` | `act_runner.yaml` | Runner config filename inside `RUNNER_DEFAULT_HOME` |
| `RUNNER_DEFAULT_HOME` | `/config/act_runner/forgejo` | Rendered runner configuration home; registration state remains under `/config/act_runner/reg` |
| `RUNNER_CONFIG_NAME` | `act_runner.yaml` | Base runner config filename inside `RUNNER_DEFAULT_HOME`; each runner gets an isolated `config.yaml` |
| `RUNNERS_CONFIG_BASE` | rendered config | Override the full base config used by every runner instance |
| `RUNNER_CLEANUP_ENABLED` | `yes` | Periodically prune stale Docker job resources and act caches |
| `RUNNER_CLEANUP_INTERVAL` | `60` | Cleanup interval in minutes |
| `RUNNER_CLEANUP_UNTIL` | `72h` | Age threshold for stopped containers, networks, and build cache |
| `RUNNER_CLEANUP_DISK_PERCENT` | `80` | Disk-use threshold for pruning all unused images |
| `RUNNER_CLEANUP_ACT_CACHE_DAYS` | `7` | Remove act cache entries older than this many days; `0` disables |
| `RUNNER_CLEANUP_LOG_FILE` | `/data/logs/act_runner/cleanup.log` | Cleanup log path |
| `ACT_RUNNER_FALLBACK_VERSION` | `v13.1.0` | Pinned act\_runner version used if code.forgejo.org is unreachable during build |
**Runner labels** are set automatically based on the host architecture. All jobs run inside Docker containers — no bare-metal execution.