Skip to content

manageitwa/github-ephemeral-runner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Actions Ephemeral Runner

This repo provides a Docker image suitable for running an ephemeral GitHub Actions runner in a containerized environment. An ephemeral runner will register itself, run a single job and then terminate and unregister itself, making it ideal for scalable CI/CD pipelines.

The image is based off the Runner images used by the nektos/act project, with the addition of Docker being available within the container. While it is compatible with most Github Actions, it does not have the full set of tools and environments available and requires the runners to set themselves up as needed, or to use a Docker image to provide the necessary environment.

Requirements

In order to run this image, your hosting environment - either Docker or Kubernetes - must use the Sysbox runtime to provide the necessary isolation and allow for the Docker daemon within this image to run in an unprivileged container. (Installation instructions here)

Security notes

The image itself runs as root initially, in order to be able to start the internal Docker daemon. The Docker daemon is separate from any external daemon, so you do not need to provide a Docker socket or API connection. When the runner is initialized, it will run the GitHub Actions runner utility as a non-privileged user, ensuring that any job run within the container does not have root access to the container. The non-privileged user does have access to the internal Docker daemon.

About

Docker image for running an ephemeral self-hosted GitHub Actions runner

Resources

License

Security policy

Stars

Watchers

Forks

Packages