This guide assumes outrunner is already installed and running. If not, start with one of the setup guides.
You need a Docker image with the GitHub Actions runner agent. You can use the official image or build your own.
docker pull ghcr.io/actions/actions-runner:latestSee Build a custom Docker runner image.
In your outrunner config, add a runner with the docker backend:
runners:
linux:
labels: [self-hosted, linux]
docker:
image: ghcr.io/actions/actions-runner:latestOr with a custom image:
runners:
linux:
labels: [self-hosted, linux]
docker:
image: outrunner-runner:latest
runner_cmd: ./run.shrunner_cmd defaults to ./run.sh and can be omitted for most images.
outrunner auto-detects the Docker socket. On Linux it uses /var/run/docker.sock. On macOS it detects Colima, Docker Desktop, or Podman sockets automatically.
To override, set the DOCKER_HOST environment variable.
- outrunner pulls the image if not available locally.
- Creates a container with the JIT registration token.
- The runner inside the container registers with GitHub, picks up the job, and runs it.
- On job completion, outrunner stops the container. It auto-removes itself (
AutoRemove: true).