From fcbc3b958eea1cc64a9c602c76bba576555efeec Mon Sep 17 00:00:00 2001 From: Erich Blume Date: Sun, 25 Jan 2026 18:12:32 -0800 Subject: [PATCH] Add docker mode to runner for containerized job execution - Runner now supports both host and docker labels - docker label uses forgejo-runner:v2.1.0 image with Node.js + Docker CLI - Switch build workflow to docker mode for ratcheting test Co-Authored-By: Claude Opus 4.5 --- .forgejo/workflows/build-container.yaml | 2 +- ansible/roles/forgejo_runner/defaults/main.yml | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.forgejo/workflows/build-container.yaml b/.forgejo/workflows/build-container.yaml index 6ed1be8..8ccf48f 100644 --- a/.forgejo/workflows/build-container.yaml +++ b/.forgejo/workflows/build-container.yaml @@ -15,7 +15,7 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: docker steps: - name: Parse tag id: parse diff --git a/ansible/roles/forgejo_runner/defaults/main.yml b/ansible/roles/forgejo_runner/defaults/main.yml index 75cbd0c..1606d0e 100644 --- a/ansible/roles/forgejo_runner/defaults/main.yml +++ b/ansible/roles/forgejo_runner/defaults/main.yml @@ -1,9 +1,11 @@ --- -# Forgejo Runner - host execution mode +# Forgejo Runner - hybrid host/docker execution # -# The runner daemon runs directly on indri and executes jobs on the host. -# This avoids container networking complexity since it can reach Forgejo -# at localhost:3001 directly. +# The runner daemon runs directly on indri. Jobs can run either: +# - On host (ubuntu-latest:host) - for builds needing host tools +# - In Docker (docker:docker://...) - for containerized builds +# +# The docker mode uses our custom job execution image with Node.js and Docker CLI. forgejo_runner_binary: /Users/erichblume/code/3rd/forgejo-runner/forgejo-runner forgejo_runner_data_dir: /Users/erichblume/.forgejo-runner @@ -14,9 +16,10 @@ forgejo_runner_log_dir: /Users/erichblume/Library/Logs forgejo_runner_instance_url: "http://localhost:3001" forgejo_runner_name: "indri-host-runner" -# Labels format for host execution: label:host -# Jobs run directly on the host, not in containers -forgejo_runner_labels: "ubuntu-latest:host,ubuntu-22.04:host" +# Labels: both host and docker modes +# - ubuntu-latest:host - jobs run directly on host +# - docker:docker://... - jobs run in container with Node.js + Docker CLI +forgejo_runner_labels: "ubuntu-latest:host,docker:docker://registry.ops.eblu.me/blumeops/forgejo-runner:v2.1.0" # Runner config forgejo_runner_capacity: 2