Helper container

Dans GitLab CI/CD, le terme "helper container" fait référence à un conteneur d'assistance qui est utilisé pour exécuter des tâches supplémentaires ou pour fournir un environnement spécifique dans lequel les jobs de pipeline peuvent s'exécuter. Les "helper containers" sont souvent utilisés pour encapsuler des outils ou des dépendances spécifiques nécessaires pour exécuter des étapes de pipeline particulières.

Voici quelques cas d'utilisation courants des "helper containers" dans GitLab CI/CD :

  1. Dépendances spécifiques : Si un job nécessite des dépendances spécifiques qui ne sont pas disponibles dans l'image de base du runner, vous pouvez utiliser un "helper container" pour y inclure ces dépendances. Par exemple, si vous avez besoin de certaines bibliothèques ou outils spécifiques pour tester votre application, vous pouvez les inclure dans un "helper container".
  2. Environnement d'exécution spécifique : Si un job nécessite un environnement d'exécution spécifique, tel qu'un interpréteur spécifique ou une version particulière d'un langage, vous pouvez utiliser un "helper container" pour fournir cet environnement.
  3. Isolation des tâches : Pour des raisons de sécurité et d'isolation, vous pouvez utiliser des "helper containers" pour exécuter des tâches qui nécessitent des conditions ou des permissions spécifiques sans affecter l'environnement de base du runner.

Voici un exemple minimal d'utilisation d'un "helper container" dans une définition de job GitLab CI/CD :

yamlCopy code
stages:
  - test

job1:
  stage: test
  script:
    - echo "Running job 1"
    - echo "This job uses the default runner image"

job2:
  stage: test
  script:
    - echo "Running job 2"
    - echo "This job uses a helper container"
  image:
    name: alpine:latest
    entrypoint: [""]

job3:
  stage: test
  script:
    - echo "Running job 3"
    - echo "This job uses a different helper container"
  image:
    name: ubuntu:latest
    entrypoint: [""]

Dans cet exemple, job2 et job3 utilisent des "helper containers" spécifiques (alpine:latest et ubuntu:latest) pour exécuter les tâches définies dans ces jobs, tandis que job1 utilise l'image par défaut du runner. Vous pouvez personnaliser davantage ces "helper containers" en fonction des besoins de vos jobs.