GitLab Runner: Créer une image Docker avec Docker-in-Docker

Cette documentation fait partie du guide Création d’images Docker. Consultez le guide complet ici : Construisez et poussez efficacement des images Docker à partir de vos pipelines GitLab CI/CD en utilisant les runners Stackhero et Docker-in-Docker.

👋 Bienvenue dans la documentation Stackhero !

Stackhero vous offre une solution GitLab Runner cloud facile à utiliser, conçue pour gérer efficacement vos jobs GitLab CI/CD. Voici ce à quoi vous pouvez vous attendre :

  • Minutes CI/CD illimitées : aucune facturation à la minute, vos pipelines s’exécutent dès que vous en avez besoin.
  • Plusieurs jobs simultanés : exécutez plusieurs jobs en même temps pour accélérer l’ensemble de votre pipeline.
  • Docker executor avec prise en charge de Docker-in-Docker : simplifiez la création et le push de vos images de conteneurs.
  • Compatible avec GitLab.com ainsi qu’avec toute instance GitLab autogérée.
  • Une VM privée et dédiée propulsée par des disques NVMe/SSD rapides pour des builds fiables et constants.
  • Disponible dans les régions 🇪🇺 Europe et 🇺🇸 USA.

Gagnez du temps : connectez votre premier GitLab Runner et commencez à exécuter vos pipelines en quelques minutes seulement !

Vous pouvez ajouter l’exemple de .gitlab-ci.yml suivant à votre dépôt. Cette configuration construit le Dockerfile situé à la racine de votre projet :

build-image:
  stage: build
  image: docker:29
  services:
    - docker:29-dind
  variables:
    DOCKER_TLS_CERTDIR: "/certs"
  before_script:
    - docker info
  script:
    # Remplacez "my-image" par le nom désiré :
    - docker build -t my-image .
    # Optionnel : lancez un test rapide sur l’image construite :
    # - docker run --rm my-image /path/to/tests

Nous utilisons la version 29 de l’image Docker dans cet exemple. Vous pouvez utiliser une version plus récente si disponible. Consultez les tags les plus récents sur la page officielle Docker image.

Dans cette configuration, le service docker:29-dind démarre le démon Docker. La variable DOCKER_TLS_CERTDIR: "/certs" permet d’établir une connexion TLS sécurisée entre votre job et le démon Docker.