Sign inSign up

blackoutsecure/github-runner

By blackoutsecure

•Updated 4 months ago

Image
0

10K+

blackoutsecure/github-runner repository overview

github logo

⁠blackoutsecure/github-runner

GitHub Stars Docker Pulls GitHub Release Blackout Secure Launchpad License: MIT Made by BlackoutSecure

Unofficial community image for the GitHub Actions Runner⁠, built with LinuxServer.io⁠ style container patterns (s6-overlay supervision, hardened defaults, multi-arch amd64 / arm64 builds) and first-class Balena deployment support. Sponsored and maintained by Blackout Secure⁠.

Important

This repository is not an official LinuxServer.io image release. Want to help make it an officially supported LinuxServer.io Community image? Add your support in [linuxserver/discussions/128](https://github.com/orgs/linuxserver/discussions/128).

Links: Docker Hub⁠ · Balena block⁠ · GitHub⁠ · Upstream Runner⁠

balena deploy button


⁠Table of Contents


⁠Quick Start

docker run -d \
  --name=gh-runner \
  --restart unless-stopped \
  -e TZ=Etc/UTC \
  -e RUNNER_URL=https://github.com/OWNER/REPO \
  -e RUNNER_TOKEN=YOUR_REGISTRATION_TOKEN \
  -v runner-config:/config \
  blackoutsecure/github-runner:latest

Note — --security-opt no-new-privileges:true is intentionally omitted. It is incompatible with the image's default RUNNER_SUDO=true (the kernel PR_SET_NO_NEW_PRIVS bit blocks sudo from elevating regardless of /etc/sudoers.d/), and turning it on without also setting RUNNER_SUDO=false breaks every workflow step that runs sudo apt-get install …. See Privileges required by feature⁠ for the full trade-off.

Then docker logs gh-runner should show a startup banner ending with Listening for Jobs.

For compose, ephemeral, hardened, fixed-pool, and dynamic-scaling configurations, see Usage⁠.

⁠Image Availability

docker pull blackoutsecure/github-runner:latest        # rolling latest
docker pull blackoutsecure/github-runner:2.333.1       # pinned upstream runner version
docker pull blackoutsecure/github-runner:sha-<commit>  # pinned source revision

One image, two roles. The image ships with both the GitHub Actions runner and the gh-runner-autoscale script baked in. The role is chosen at launch time — pick whichever fits your orchestrator most cleanly; all three forms produce an identical container:

RoleHow to launchContainer PID 1
Full self-hosted runner (default)No env var, no command args6-overlay (/init) → Runner.Listener (dropped to abc/uid 911)
Autoscaler sidecar — env varRUNNER_ROLE=autoscalerbash autoscaler loop (root)
Autoscaler sidecar — CMD argdocker run IMAGE autoscalerbash autoscaler loop (root)
Autoscaler sidecar — explicit (advanced)entrypoint: ["/usr/local/bin/gh-runner-autoscale"]bash autoscaler loop (root)

Prefer RUNNER_ROLE=autoscaler for most deployments — it's a single env var that survives every orchestrator's ergonomics (Balena fleet env vars, Kubernetes Deployment templates, Nomad task env, ECS task definitions). The CMD-arg form is convenient for one-shot docker run invocations. The explicit entrypoint: form remains supported for callers already wired that way; you don't have to migrate.

The baked-in gh-runner-healthcheck⁠ auto-detects sidecar mode by inspecting /proc/1/cmdline, so the same HEALTHCHECK works in every form — no healthcheck: disable: true workaround required.

docker buildx build -t blackoutsecure/github-runner:local .
TagMeaning
latestLatest release on top of Ubuntu 24.04 Noble; multi-arch
<runner-version> (e.g. 2.333.1)Pinned upstream actions/runner release
sha-<commit>Pinned to a specific commit of this repository
amd64-latest / arm64v8-latestArchitecture-specific aliases for latest

For production, pin to a <runner-version> or sha-<commit> tag and update on a schedule.

⁠Supported Architectures

ArchitecturePlatformAlias tag
x86-64linux/amd64amd64-latest
ARM 64-bitlinux/arm64arm64v8-latest

The description above is a condensed version. View the full README on GitHub: https://github.com/blackoutsecure/docker-github-runner/blob/3f5c4a9de2c42aca6ba4909f41fff6dd098f2ba4/./README.md⁠

Tag summary

Content type

Image

Digest

sha256:a6b68c901…

Size

339.3 MB

Last updated

4 months ago

docker pull blackoutsecure/github-runner