web-dev-qa-db-fra.com

Qu'est-ce que Gitlab Runner

Je pense que je manque fondamentalement quelque chose. Je suis nouveau sur CI/CD et j'essaie de configurer mon premier pipeline avec gitlab.

Le projet est un projet préexistant PHP.

Je ne veux pas le nettoyer pour le moment, pour le moment, j'ai poussé le tout dans un conteneur Docker et ça fonctionne très bien avec les bases de données mysql de Google Cloud, etc., comme il se doit localement et également sur une machine virtuelle de test Google Cloud distante . Le rêve est de pouvoir pousser vers la branche de développement, puis fusionner le banc de développement dans la branche de test qui déclenche ensuite les tests automatisés (partie facile), et provoque également le test à distance VM ( hébergé sur google cloud), pour TIRER les dernières modifications, reconstruire l'image à partir du dernier fichier docker (ou extraire la dernière image du registre d'images gitlab) ... puis reconstruire le conteneur avec la dernière image.

Je joue avec le coureur de gitlab mais je ne comprends pas à quoi il sert réellement, malgré la recherche dans presque tout le contenu en ligne. Dois-je simplement l'installer dans la machine virtuelle Google Cloud, puis lorsque je pousse pour gitlab à partir de ma machine de développement .. le repo 'signalera' au coureur (qui s'exécute sur la machine virtuelle, d'exécuter un tas de scripts (qui pourraient inclure git tirer sur les derniers changements?).

Parce que j'ai déjà pré-emballé mon application dans un conteneur localement (et poussé l'image vers le registre d'images) dois-je utiliser docker comme mon exécuteur sur le coureur? ou puis-je simplement utiliser Shell et Shell les commandes dans?

Qu'est-ce que je rate?

TLDR et extra:

Des questions:

  1. À quoi sert réellement le coureur, où est-il destiné à être installé?
    Est-il important de savoir dans quel répertoire il est exécuté?
    S'il ne se soucie pas du répertoire qu'il exécute, où exécute-t-il ses commandes de script? À la racine?

  2. Si je crée localement mes propres images et les télécharge dans le registre de gitlab,

Dois-je définir mon exécuteur testamentaire sur docker? Ne devrais-je pas simplement le définir sur Shell, extraire l'image et la créer? (En supposant que le coureur s'exécute sur la machine virtuelle distante).

13
clse

À quoi sert réellement le coureur?

Vous avez votre projet accompagné d'un .gitlab-ci.yml fichier. .gitlab-ci.yml définit les étapes de votre pipeline CI/CD et ce qu'il faut faire à chaque étape. Cela comprend généralement des étapes de génération, de test et de déploiement. À chaque étape, vous pouvez définir plusieurs tâches. Par exemple, au stade de la construction, vous pouvez avoir 3 tâches à construire sur Debian, Centos et Windows (dans le glossaire GitLab build:debian, build:centos, build:windows). Un exécuteur GitLab clone le projet, lit le fichier gitlab-ci.yaml et fait ce qu'il lui est demandé de faire. Donc, fondamentalement, GitLab runner est un processus Golang qui exécute certaines tâches commandées.

où est-il destiné à être installé?

Vous pouvez installer un coureur dans votre environnement souhaité répertorié ici. https://docs.gitlab.com/runner/install/ ou vous pouvez utiliser un runner partagé déjà installé sur l'infrastructure de GitLab.

Se soucie-t-il du répertoire dans lequel il est exécuté?

Oui. Chaque tâche exécutée par le coureur est relative à CI_PROJECT_DIR défini dans https://gitlab.com/help/ci/variables/README . Mais vous pouvez modifier ce comportement.

où exécute-t-il ses commandes de script? À la racine?

Dois-je définir mon exécuteur testamentaire sur docker? Ne devrais-je pas simplement le définir sur Shell, extraire l'image et la créer?

Un coureur peut avoir plusieurs exécuteurs tels que docker, Shell, virtualbox etc. mais docker étant le plus courant. Si vous utilisez Docker comme exécuteur, vous pouvez extraire n'importe quelle image du Docker Hub ou de votre registre configuré et vous pouvez faire des charges de stff avec des images Docker. Dans un environnement docker, vous les exécutez normalement en tant qu'utilisateur root. https://docs.gitlab.com/runner/executors/README.html

12
Kalpa Gunarathna

Voir les journaux d'accès à gitlab, le coureur interroge constamment le serveur

0
HCDINH