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 :
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 :
# 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 :
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
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
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
sudo docker exec -it gitlab-runner /bin/bash
Configuration pour Python¶
Pour installer les éléments nécessaires à des projets Python, voici la commande :
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
apt update && apt install curl -y
Installation de NVM :
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
Dernière configuration :
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 :
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 :
apt-get install -y libglib2.0-0 libpangocairo-1.0-0