Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

GitLab Runner is an application that works with GitLab CI/CD to run jobs in a pipeline.

...

Prerequisites

  • Your GitLab repository supports CI/CD
    • You can

...

    • enable the feature ON

...

    • via following steps Settings → General → Visibility, project features, permissions CI/CD
  • Server that supports docker (supported platforms)

Instructions

This section describes how to install and configure GitLab runner using docker on Fedora server some server.

  1. Deploy virtual server in Portal

    (skip this section

    Info

    Skip this step if you already have a server

    )See article for instructions

    If you need new server, you can deploy one via TDS portal - Orchestration - Servers#Howtodeploynewserver


  2. Install Docker engine on server ()Step by step (official instructions– choose one of the following options
    • Option A - using "convenience script" from official instructions – recommended only for development and testing purposes

     Set up the repository
    • Code Block
      languagebash
    $:
    • curl -fsSL https://get.docker.com -o get-docker.sh
      sudo sh get-docker.sh
      sudo systemctl start docker


    • Option B - specific approach for each relevant OS - basically setting up repository and installing Docker Engine - all supported OS instructions can be found at https://docs.docker.com/engine/install
      • CentOS - official instructions

        Code Block
        sudo yum install -y yum-utils
        sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
        sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y


      • Fedora - official instructions

        Code Block
        sudo dnf -y install dnf-plugins-core
        
    $:
      • sudo dnf config-manager 
      • --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

    Install Docker Engine

    Code Block
    languagebash
    $:
      • 
        sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    Convenience script (official instructions) - recommended only for testing and development purposes

      •  -y


      • Ubuntu - official instructions

        Code Block
        sudo apt-get update
        sudo apt-get install ca-certificates curl gnupg lsb-release -y
        sudo mkdir -m 0755 -p /etc/apt/keyrings
        
    Code Block
    languagebash
      • curl -fsSL https://
    get
      • download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o
    get-docker.sh sudo sh get-docker.sh
      •  /etc/apt/keyrings/docker.gpg
        echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


  3. Add your user to docker group to be able to run docker commands (more about security in article)

    Code Block
    languagebash
    sudo usermod -aG docker $USER


  4. Start docker container with latest version of gitlab runner (official instructions)

    Code Block
    languagebash
    $: docker run -d --name gitlab-runner --restart always \
      -v /srv/gitlab-runner/config:/etc/gitlab-runner \
      -v /var/run/docker.sock:/var/run/docker.sock \
      gitlab/gitlab-runner:latest


  5. Configure GitLab runner to connect to your repository
    1. In your Go to desired GitLab repository , go to Settings CI/CD Runners
    2. You will need URL and registration token from Go to "Set up a specific runner for a project" section
      • Copy the "URL" and "registration token", you will need it in next steps
    3. Execute following command Call following on the server with running docker container

      Code Block
      languagebash
      docker exec -it gitlab-runner gitlab-runner register --docker-privileged


    4. You will be prompted to fill-in following parameters:
      • URL from step
      4
      • 5.
      c
      • b.
      • Token from step
      4
      • 5.
      c
      • b.
      • Description
      • Tags for the runner (can leave this blank for the moment).
      • Specify docker executor
      • Specify a default Docker image (e.g. alpine:latest)