GitLab Runner

GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with GitLab CI, the open-source continuous integration service included with GitLab that coordinates the jobs.


GitLab Runner is written in Go and can be run as a single binary, no language specific requirements are needed.

It is designed to run on the GNU/Linux, macOS, and Windows operating systems. Other operating systems will probably work as long as you can compile a Go binary on them.

If you want to use Docker make sure that you have version v1.5.0 at least installed.


  • Allows to run:
    • Multiple jobs concurrently.
    • Use multiple tokens with multiple server (even per-project).
    • Limit number of concurrent jobs per-token.
  • Jobs can be run:
    • Locally.
    • Using Docker containers.
    • Using Docker containers and executing job over SSH.
    • Using Docker containers with autoscaling on different clouds and virtualization hypervisors.
    • Connecting to remote SSH server.
  • Is written in Go and distributed as single binary without any other requirements.
  • Supports Bash, Windows Batch, and Windows PowerShell.
  • Works on GNU/Linux, macOS, and Windows (pretty much anywhere you can run Docker).
  • Allows customization of the job running environment.
  • Automatic configuration reload without restart.
  • Easy to use setup with support for Docker, Docker-SSH, Parallels, or SSH running environments.
  • Enables caching of Docker containers.
  • Easy installation as a service for GNU/Linux, macOS, and Windows.
  • Embedded Prometheus metrics HTTP server.

Compatibility with GitLab versions

The GitLab Runner version should be in sync with the GitLab version. While older Runners may still work with newer GitLab versions, and vice versa, in some cases, features may be not available or work properly if there’s a version difference.

Backward incompatibility is allowed only for major version updates.

Install GitLab Runner

GitLab Runner can be installed and used on GNU/Linux, macOS, FreeBSD, and Windows. You can install it using Docker, download the binary manually or use the repository for rpm/deb packages that GitLab offers. Below you can find information on the different installation methods:

Register GitLab Runner

Once GitLab Runner is installed, you need to register it with GitLab.

Learn how to register a GitLab Runner.

Using GitLab Runner

Selecting the executor

GitLab Runner implements a number of executors that can be used to run your builds in different scenarios. If you are not sure what to select, read the I am not sure section. Visit the compatibility chart to find out what features each executor supports and what not.

To jump into the specific documentation of each executor, see:

Configuring GitLab Runner

See information on configuring GitLab Runner, and:


Read the FAQ for troubleshooting common issues.

Release process

The description of release process of the GitLab Runner project can be found in the release documentation.


Contributions are welcome, see for more details.


See the development documentation to hack on GitLab Runner.

If you’re a reviewer of GitLab Runner project, then please take a moment to read the Reviewing GitLab Runner document.


See the CHANGELOG to view recent changes.


This code is distributed under the MIT license, see the LICENSE file.