--- # yaml-language-server: $schema=https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json x-runner-env: &runner-env TZ: Asia/Shanghai MAX_PARALLEL_JOBS: "1" GITEA_RUNNER_JOB_CONTAINER_FORCE_PULL: "true" ACT_CACHE_SERVER_EXTERNAL_URL: "http://gitea-runner-cache-server.oo1.dev:9999/" # CACHE_EXTERNAL_SECRET: "${CACHE_EXTERNAL_SECRET:?set CACHE_EXTERNAL_SECRET}" CACHE_EXTERNAL_SECRET: 7990850f9cffc2a8504d629b401ca0667d26adf6d648ac29496fffd3f70282a5 x-runner-command: &runner-command - -ec - | arch=$$(uname -m) if [ "$$arch" = "x86_64" ]; then arch="amd64" elif [ "$$arch" = "aarch64" ]; then arch="arm64" else echo "unknown arch: $$arch" exit 1 fi labels="$${GITEA_RUNNER_LABELS:-}" if [ -z "$$labels" ]; then labels="ubuntu-latest:docker://gitea/runner-images:ubuntu-latest" labels="$$labels,ubuntu-$$arch:docker://gitea/runner-images:ubuntu-latest" fi if [ -z "$${GITEA_RUNNER_NAME:-}" ]; then country=$$(wget -qO- https://ipinfo.io/country 2>/dev/null || true) ip=$$(wget -qO- https://ipv4.icanhazip.com 2>/dev/null || true) memTotal=$$(awk '/MemTotal/ {printf "%.2f", $$2 / 1024 / 1024}' /proc/meminfo) country="$${country:-XX}" ip="$${ip:-unknown-ip}" GITEA_RUNNER_NAME="$$country-$$ip-$$arch-$$(nproc)C$${memTotal}G-$${RUNNER_INSTANCE_NAME}" fi { printf '%s\n' 'log:' printf '%s\n' ' level: info' printf '%s\n' '' printf '%s\n' 'runner:' printf '%s\n' ' file: /data/.runner' printf ' capacity: %s\n' "$${MAX_PARALLEL_JOBS}" printf '%s\n' ' labels:' old_ifs="$$IFS" IFS=',' set -- $$labels IFS="$$old_ifs" for label in "$$@"; do printf ' - "%s"\n' "$$label" done printf '%s\n' '' printf '%s\n' 'cache:' printf '%s\n' ' enabled: true' printf '%s\n' ' dir: /data/cache/server' printf ' external_server: "%s"\n' "$${ACT_CACHE_SERVER_EXTERNAL_URL}" printf ' external_secret: "%s"\n' "$${CACHE_EXTERNAL_SECRET}" printf '%s\n' '' printf '%s\n' 'container:' printf ' force_pull: %s\n' "$${GITEA_RUNNER_JOB_CONTAINER_FORCE_PULL}" } >/tmp/runner-config.yaml if [ ! -s /data/.runner ]; then act_runner --config /tmp/runner-config.yaml register --no-interactive \ --instance "$${GITEA_INSTANCE_URL}" \ --token "$${GITEA_RUNNER_REGISTRATION_TOKEN}" \ --name "$${GITEA_RUNNER_NAME}" \ --labels "$$labels" fi exec act_runner --config /tmp/runner-config.yaml daemon x-runner-common: &runner-common # image: docker.io/gitea/act_runner:v0.6.0 image: docker.io/gitea/act_runner:nightly restart: unless-stopped # pull_policy: always stop_signal: SIGINT stop_grace_period: 30s labels: com.centurylinklabs.watchtower.enable: "true" working_dir: /data entrypoint: ["/sbin/tini", "--", "/bin/sh"] command: *runner-command services: runner-yanhao_ren: # ❗️1️⃣ <<: *runner-common container_name: gitea_runner_yanhao_ren # ❗️2️⃣ environment: <<: *runner-env RUNNER_INSTANCE_NAME: yanhao_ren # ❗️3️⃣ GITEA_INSTANCE_URL: "https://git.yanhao.ren" # ❗️4️⃣ GITEA_RUNNER_REGISTRATION_TOKEN: # ❗️5️⃣ volumes: - gitea_runner_yanhao_ren_data:/data # ❗️6️⃣ - /var/run/docker.sock:/var/run/docker.sock:ro - /etc/localtime:/etc/localtime:ro runner-git.1-h.cc: # ❗️1️⃣ <<: *runner-common container_name: gitea_runner_git.1-h.cc # ❗️2️⃣ environment: <<: *runner-env RUNNER_INSTANCE_NAME: git.1-h.cc # ❗️3️⃣ GITEA_INSTANCE_URL: "https://git.1-h.cc" # ❗️4️⃣ GITEA_RUNNER_REGISTRATION_TOKEN: # ❗️5️⃣ volumes: - gitea_runner_git.1-h.cc_data:/data # ❗️6️⃣ - /var/run/docker.sock:/var/run/docker.sock:ro - /etc/localtime:/etc/localtime:ro volumes: gitea_runner_yanhao_ren_data: gitea_runner_git.1-h.cc_data: