fix: use forgejo/runner as base image, add Node.js on top
Build and push runner images / build-runners (push) Failing after 17s

- 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
This commit is contained in:
2026-09-05 23:43:21 -07:00
parent 39e2ed504c
commit 709b8b7039
6 changed files with 23 additions and 41 deletions
+3 -8
View File
@@ -1,15 +1,10 @@
FROM docker:27-cli FROM code.forgejo.org/forgejo/runner:6
# Install Node.js + build essentials (needed for GitHub Actions checkout@v4, etc.) # Install Node.js (needed for GitHub Actions checkout@v4, etc.)
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
nodejs \ nodejs \
npm \ npm && \
git \
curl \
ca-certificates \
build-essential \
python3 && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
# Verify installations # Verify installations
+3 -12
View File
@@ -1,13 +1,4 @@
FROM node:22-bookworm FROM code.forgejo.org/forgejo/runner:6
# Install Docker client (dind sidecar provides the daemon) # Node.js is already in forgejo/runner, just verify
RUN apt-get update && \ RUN node --version && docker --version && git --version
apt-get install -y --no-install-recommends \
docker.io \
git \
curl \
ca-certificates && \
rm -rf /var/lib/apt/lists/*
# Verify installations
RUN docker --version && node --version && git --version
+6 -10
View File
@@ -1,20 +1,16 @@
FROM docker:27-cli FROM code.forgejo.org/forgejo/runner:6
# Install Node.js + build essentials (needed for GitHub Actions checkout@v4, etc.) # Install Node.js + Rust (needed for GitHub Actions checkout@v4, etc.)
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
nodejs \ nodejs \
npm \ npm && \
git \
curl \
ca-certificates \
build-essential \
python3 && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
# Install Rust # Install Rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
. $HOME/.cargo/env
ENV PATH="/root/.cargo/bin:${PATH}"
# Verify installations # Verify installations
RUN docker --version && node --version && git --version && rustc --version RUN docker --version && node --version && git --version && rustc --version
+4 -4
View File
@@ -4,13 +4,13 @@
# #
# node:22-bookworm ships Node natively. Docker client installed via workflow step if needed. # node:22-bookworm ships Node natively. Docker client installed via workflow step if needed.
# (homelab has no CI; custom runner images built manually if desired) # (homelab has no CI; custom runner images built manually if desired)
# Bootstrap with base image, custom image via CI+Image Updater # Bootstrap with runner image (already has Node.js), CI builds custom
runner: runner:
image: image:
repository: node repository: code.forgejo.org/forgejo/runner
tag: "22-bookworm" tag: "6"
name: node-runner name: node-runner
labels: "node:docker://node:22-bookworm" labels: "node:docker://code.forgejo.org/forgejo/runner:6"
# GC CronJob renders only from the default (golang) values to avoid duplicates # GC CronJob renders only from the default (golang) values to avoid duplicates
gc: gc:
+4 -4
View File
@@ -2,13 +2,13 @@
# runner instance. Only runner.name and runner.labels differ -- everything # runner instance. Only runner.name and runner.labels differ -- everything
# else (image, dind, persistence, tolerations, nodeSelector) is shared. # else (image, dind, persistence, tolerations, nodeSelector) is shared.
# #
# Bootstrap with base image, custom image via CI+Image Updater # Bootstrap with runner image, CI builds custom with Node.js+Rust
runner: runner:
image: image:
repository: docker repository: code.forgejo.org/forgejo/runner
tag: "27-cli" tag: "6"
name: rust-runner name: rust-runner
labels: "rust:docker://docker:27-cli" labels: "rust:docker://code.forgejo.org/forgejo/runner:6"
+3 -3
View File
@@ -1,9 +1,9 @@
runner: runner:
image: image:
repository: docker repository: code.forgejo.org/forgejo/runner
tag: "27-cli" # Bootstrap with base image, custom image via CI+Image Updater tag: "6" # Bootstrap with runner image, CI builds custom with Node.js
name: golang-runner name: golang-runner
labels: "golang:docker://docker:27-cli" labels: "golang:docker://code.forgejo.org/forgejo/runner:6"
forgejoUrl: http://forgejo-gitea-http.cicd.svc.cluster.local:3000 forgejoUrl: http://forgejo-gitea-http.cicd.svc.cluster.local:3000
tokenSecret: runner-token tokenSecret: runner-token
resources: resources: