Aller au contenu

GitLab Runner

Description

Ce document à pour but d'expliquer comment déployer un GitLab Runner en containeur.

L'installation de GitLab ne sera pas expliqué ici, seul la partie GitLab Runner sera expliqué.

Installation et Configuration

Installation de Docker

Tutoriel provenant de la documentation officiel de Docker :

Installation des dépendances :

Bash
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

Ajouter le dépot de Docker à apt :

Bash
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Installation de Docker :

Bash
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Lancement du containeur

On va créer notre containeur GitLab Runner

Bash
docker run -d --name gitlab-runner --restart always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v gitlab-runner-config:/etc/gitlab-runner \
  gitlab/gitlab-runner:latest   

Puis on va l'enregistrer dans notre GitLab

Bash
docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner register   

Vous devez aller dans vos paramètres CI/CD, ajouter un Runner Linux et vous n'avez qu'à mettre la clé, sélectionner la méthode d'éxecution Shell et donner un nom à votre Runner.

Configuration de containeur

On va rentrer dans le containeur et on va installer ce qu'il nous faut

Bash
sudo docker exec -it gitlab-runner /bin/bash

Configuration pour Python

Pour installer les éléments nécessaires à des projets Python, voici la commande :

Bash
apt-get update && apt-get install -y python3 python3-pip python3-venv

Configuration pour NodeJS

Pour installer les éléments nécessaires à des projets NodeJS, voici la commande :

Installation des dépendances de NVM

Bash
apt update && apt install curl -y

Installation de NVM :

Bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

Dernière configuration :

Bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" 
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

En cas d'erreur

Erreur 1

Si vous avez une erreur qui ressemble un peu près à ceci :

Bash
OSError: cannot load library 'libgobject-2.0-0': libgobject-2.0-0: cannot open shared object file: No such file or directory.  Additionally, ctypes.util.find_library() did not manage to locate a library called 'libgobject-2.0-0'

Faite cette commande dans votre containeur :

Bash
apt-get install -y libglib2.0-0 libpangocairo-1.0-0