70 lines
1.6 KiB
YAML
70 lines
1.6 KiB
YAML
# docker-compose.yml — GitHub Actions self-hosted runner orchestration.
|
|
#
|
|
# All configuration is injected via environment files:
|
|
# - .env → shared config (GITHUB_PAT)
|
|
# - envs/augur.env → per-repo config (identity, labels, resource limits)
|
|
#
|
|
# Quick start:
|
|
# cp .env.example .env && cp envs/augur.env.example envs/augur.env
|
|
# # Edit both files with your values
|
|
# docker compose up -d
|
|
#
|
|
# To add another repo: copy envs/augur.env.example to envs/<repo>.env,
|
|
# fill in values, and add a matching service block below.
|
|
|
|
x-runner-common: &runner-common
|
|
image: ${RUNNER_IMAGE:-ghcr.io/aiinfuseds/augur-runner:latest}
|
|
build: .
|
|
env_file:
|
|
- .env
|
|
- envs/augur.env
|
|
tmpfs:
|
|
- /tmp:size=2G,exec
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
stop_grace_period: 5m
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: "${RUNNER_CPUS:-4}"
|
|
memory: "${RUNNER_MEMORY:-4G}"
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "pgrep", "-f", "Runner.Listener"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 30s
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "3"
|
|
|
|
services:
|
|
runner-augur-1:
|
|
<<: *runner-common
|
|
environment:
|
|
RUNNER_NAME: unraid-augur-1
|
|
volumes:
|
|
- augur-work-1:/home/runner/_work
|
|
|
|
runner-augur-2:
|
|
<<: *runner-common
|
|
environment:
|
|
RUNNER_NAME: unraid-augur-2
|
|
volumes:
|
|
- augur-work-2:/home/runner/_work
|
|
|
|
runner-augur-3:
|
|
<<: *runner-common
|
|
environment:
|
|
RUNNER_NAME: unraid-augur-3
|
|
volumes:
|
|
- augur-work-3:/home/runner/_work
|
|
|
|
volumes:
|
|
augur-work-1:
|
|
augur-work-2:
|
|
augur-work-3:
|