# 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"