Files
spencermandClaude Fable 5.1 0dfe856f17
ci / frontend (push) Successful in 1m6s
ci / server (push) Successful in 3m46s
ci / e2e (push) Successful in 1m48s
ci / image (push) Failing after 2m34s
Runner: reachable actions cache on docker0:8088, allow the workspace bind in valid_volumes
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-16 10:48:02 -06:00

44 lines
2.4 KiB
YAML

# Gitea Actions runner for docker-1. One act_runner container with the host Docker socket.
# Jobs run in docker.gitea.com/runner-images:ubuntu-latest containers started through the socket.
# The job workspace is a host directory (container.bind_workdir) mounted into the runner and into
# the job container at the same absolute path, so a job's `docker compose` can bind-mount files of
# the checkout (the CI secrets, deploy/postgres/initdb, tests/e2e) and the host daemon finds them.
#
# Install on docker-1 (see README.md): copy this folder to ~/gitea/runner, register once, then up -d.
# cd ~/gitea/runner
# docker compose run --rm --entrypoint act_runner runner register --no-interactive \
# --instance https://gt.pescoinc.biz --name docker-1 --config /data/config.yaml \
# --labels ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest \
# --token "$(docker exec -u git gitea gitea actions generate-runner-token)"
# docker compose up -d
# The registration token goes straight from Gitea into the register command. It is never written down.
name: gitea-runner
services:
runner:
# docker.gitea.com/act_runner:0.4 (act_runner v0.4.1), pinned by digest 2026-10-16.
# To refresh: docker buildx imagetools inspect docker.gitea.com/act_runner:0.4
image: docker.gitea.com/act_runner:0.4@sha256:696a59b51ad3d149521e3beb0229d5fb88f87295e1616f940199793274415b56
environment:
CONFIG_FILE: /data/config.yaml
# Registration happens once, by hand, with the command above. These two are only read on an
# unregistered start and are left here so the names are known; no token is set in this file.
GITEA_INSTANCE_URL: https://gt.pescoinc.biz
GITEA_RUNNER_NAME: docker-1
ports:
# The actions cache server, for the job containers only (docker0 address, not the LAN).
# Must match cache.host and cache.port in data/config.yaml.
- "172.17.0.1:8088:8088"
volumes:
- ./data:/data # .runner (the registration), config.yaml, cache, job logs
# Job workspaces. The host path and the container path must be the same (see data/config.yaml).
- /home/spencerm/gitea/runner/work:/home/spencerm/gitea/runner/work
- /var/run/docker.sock:/var/run/docker.sock # job containers and the Docker proxy
restart: unless-stopped
logging:
driver: json-file
options:
max-size: "10m"
max-file: "5"