feat: add Node.js to all runner images (golang, rust, node)

- Dockerfile.golang: docker:27-cli + Node.js + build tools
- Dockerfile.rust: docker:27-cli + Node.js + Rust + build tools
- Dockerfile.node: node:22-bookworm + docker.io (already has Node.js)
- All runners now support GitHub Actions (checkout@v4 requires Node.js)
- Images built/pushed manually (no CI for homelab)

To build and push:
  docker build -f k8s/infra/forgejo-runner/Dockerfile.golang \
    -t forgejo.riotpiao.com/rock/forgejo-runner-golang:latest .
  docker build -f k8s/infra/forgejo-runner/Dockerfile.rust \
    -t forgejo.riotpiao.com/rock/forgejo-runner-rust:latest .
  docker build -f k8s/infra/forgejo-runner/Dockerfile.node \
    -t forgejo.riotpiao.com/rock/forgejo-runner-node:latest .

  docker push forgejo.riotpiao.com/rock/forgejo-runner-golang:latest
  docker push forgejo.riotpiao.com/rock/forgejo-runner-rust:latest
  docker push forgejo.riotpiao.com/rock/forgejo-runner-node:latest
This commit is contained in:
2026-09-05 23:13:59 -07:00
parent cdd0ba2c99
commit 0e63d208d1
4 changed files with 49 additions and 20 deletions
+7 -11
View File
@@ -2,20 +2,16 @@
# runner instance. Only runner.name and runner.labels differ -- everything
# else (image, dind, persistence, tolerations, nodeSelector) is shared.
#
# Use docker:27-cli instead of rust:1.83-bookworm because:
# - Needs Node.js for GitHub Actions (actions/checkout@v4, etc.)
# - Has docker CLI + git + full dev tools
# - rust:1.83-bookworm lacks Node.js (causes action failures)
#
# docker:27-cli verified: docker manifest inspect docker:27-cli ✓
# Custom image: docker:27-cli + Node.js + Rust + build tools
# - Node.js for GitHub Actions (actions/checkout@v4, etc.)
# - Docker CLI for container builds
# - Rust toolchain (via rustup)
# - Build essentials
runner:
name: rust-runner
labels: "rust:docker://docker:27-cli"
labels: "rust:docker://forgejo.riotpiao.com/rock/forgejo-runner-rust:latest"
persistence:
reg:
storageClass: longhorn
size: 20Gi
# GC CronJob renders only from the default (golang) values to avoid duplicates
gc: