Gitea Act Runner: DinD stack with cache + parallel jobs

Stable docker-compose setup for building Rust projects on Gitea Actions.
DinD-isolated daemon, built-in cache server, capacity=4 parallel jobs,
healthcheck-gated startup. Portable to other build machines via .env.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HU4wDwdydNZpR3YkMiYYy8
This commit is contained in:
2026-06-30 12:08:05 +07:00
co-authored by Claude Opus 4.8
commit 6ca26d2309
7 changed files with 190 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
log:
level: info
runner:
# Run multiple jobs concurrently. Overridden by env at compose level too.
capacity: 4
timeout: 3h
# Keep the runner alive; jobs are ephemeral containers.
insecure: false
# Env injected into every job. Speeds up Rust builds.
envs:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: "0"
CARGO_NET_RETRY: "10"
fetch_timeout: 5s
fetch_interval: 2s
# Labels decide which docker image runs each job. Jobs use `runs-on: ubuntu-latest`.
labels:
- "ubuntu-latest:docker://catthehacker/ubuntu:act-22.04"
- "ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04"
- "ubuntu-24.04:docker://catthehacker/ubuntu:act-24.04"
cache:
# Built-in cache server so actions/cache works (Rust deps, target/, etc.)
enabled: true
dir: ""
# Empty host -> auto-detect outbound IP reachable from job containers.
host: ""
port: 0
container:
# Talk to the DinD daemon, not the host.
network: ""
privileged: false
options: ""
workdir_parent: ""
# Allow workflows to mount caches from the DinD volume.
valid_volumes:
- "**"
docker_host: "-"
force_pull: false
host:
workdir_parent: ""