GitLab Runner: Docker-Image mit Docker-in-Docker bauen

Diese Dokumentation ist Teil des Docker-Images erstellen-Leitfadens. Den vollständigen Leitfaden finden Sie hier: Erstellen und pushen Sie Docker-Images effizient aus Ihren GitLab CI/CD-Pipelines mit Stackhero Runnern und Docker-in-Docker.

👋 Willkommen in der Stackhero-Dokumentation!

Stackhero bietet Ihnen eine benutzerfreundliche GitLab Runner Cloud-Lösung, die speziell dafür entwickelt wurde, Ihre GitLab CI/CD-Jobs effizient auszuführen. Das erwartet Sie:

  • Unbegrenzte CI/CD-Minuten: Es gibt keine Abrechnung pro Minute, sodass Ihre Pipelines jederzeit ausgeführt werden können.
  • Mehrere gleichzeitige Jobs: Führen Sie mehrere Jobs parallel aus, um Ihre gesamte Pipeline zu beschleunigen.
  • Der Docker Executor mit Docker-in-Docker-Unterstützung: Optimieren Sie das Erstellen und Pushen Ihrer Container-Images.
  • Kompatibel mit GitLab.com sowie jeder selbst gehosteten GitLab-Instanz.
  • Eine private, dedizierte VM mit schnellen NVMe/SSD-Festplatten für konsistente und zuverlässige Builds.
  • Verfügbar in den Regionen 🇪🇺 Europa und 🇺🇸 USA.

Sparen Sie Zeit: Sie können Ihren ersten GitLab Runner verbinden und Ihre Pipelines in nur wenigen Minuten starten!

Sie können die folgende Beispiel-.gitlab-ci.yml-Datei zu Ihrem Repository hinzufügen. Diese Konfiguration baut das Dockerfile im Root-Verzeichnis Ihres Projekts:

build-image:
  stage: build
  image: docker:29
  services:
    - docker:29-dind
  variables:
    DOCKER_TLS_CERTDIR: "/certs"
  before_script:
    - docker info
  script:
    # Ersetzen Sie "my-image" durch den gewünschten Namen:
    - docker build -t my-image .
    # Optional: Führen Sie einen schnellen Test mit dem gebauten Image aus:
    # - docker run --rm my-image /path/to/tests

In diesem Beispiel verwenden wir die Docker-Image-Version 29. Sie können auch eine neuere Version verwenden, sobald diese verfügbar ist. Die aktuellsten Tags finden Sie auf der offiziellen Docker-Image-Seite.

In dieser Konfiguration startet der Service docker:29-dind den Docker-Daemon. Mit der Einstellung DOCKER_TLS_CERTDIR: "/certs" wird eine sichere TLS-Verbindung zwischen Ihrem Job und dem Docker-Daemon aktiviert.