Skip to content

romnovi/github-runner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Github-runner

This is a production-ready self-hosted runner wrapped into the container. You need only PAT token and your organization name to start it. Currently, it works on linux and supports 3 platforms:

  • x64
  • arm64
  • arm v7

I wrote a small instruction how to get PAT token here: getting-pat-token

How to use:

Change rights to the docker.sock. Disclaimer: it's a little bit unsecured because we allow all users to read/write docker.sock.

sudo chmod 666 /var/run/docker.sock

Run it with one-liner:

docker run --rm \
  -e ORG=myorg \
  -e ACCESS_TOKEN=github_pat_... \
  -e NAME=self-hosted \
  -v /var/run/docker.sock:/var/run/docker.sock \
  ghcr.io/romnovi/github-runner:latest

Docker compose or swarm example:

services:
  runner:
    image: ghcr.io/romnovi/github-runner:latest
    environment:
      - ORG=myorg
      - ACCESS_TOKEN=github_pat_...
      - NAME=self-hosted
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Build locally:

docker build -t github-runner src --build-arg RUNNER_PLATFORM=linux-x64
docker build -t github-runner src --build-arg RUNNER_PLATFORM=linux-arm64

Building Custom Images

If you need to add additional tools or dependencies to the runner, you can create a custom image using ghcr.io/romnovi/github-runner as a base image.

Example Dockerfile:

FROM ghcr.io/romnovi/github-runner:latest

USER root

# Install additional tools
RUN apt-get update && apt-get install -y \
    nodejs \
    python3-pip \
    && rm -rf /var/lib/apt/lists/*

USER docker

For a complete example, see the custom-image example.

About

Github self-hosted runner

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages