Problem: Forgejo runner base image is Alpine, not Debian.
- doesn't exist (Alpine uses )
- Runner user is 1000, can't modify apk database (permission denied)
- CI workflow used GitHub-specific conditionals (contains() doesn't work in Forgejo)
Fixes:
1. Replace apt-get with apk for all runner Dockerfiles
2. Switch to USER root before package installation
3. Switch back to runner user (1000:1000) after
4. Simplify build workflow: build all runners in loop (no conditionals)
Testing:
✅ Golang runner: docker, node, npm installed
✅ Node runner: docker, node, npm installed
✅ Rust runner: docker, node, npm installed
This enables:
- homelab-frontend CI to build/push api-gateway image
- Build workflow to run on node runner with docker available
- All three runners have docker-cli for CI workflows
- All runners now based on code.forgejo.org/forgejo/runner:6 (has runner binary)
- Dockerfile adds Node.js + specialized tools (Go, Rust, docker)
- CI workflow will build custom images and push to registry
- Image Updater will auto-detect and update values.yaml
- ArgoCD will sync new custom images when available