GitLab Runner: Push in die GitLab Container Registry
Diese Dokumentation ist Teil des Docker-Images bauen-Leitfadens. Den vollständigen Leitfaden finden Sie hier: Bauen und pushen Sie Docker-Images direkt aus Ihren GitLab CI/CD-Pipelines mit Ihrem Stackhero Runner 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!
GitLab stellt mehrere vordefinierte Variablen (CI_REGISTRY, CI_REGISTRY_USER, CI_REGISTRY_PASSWORD, CI_REGISTRY_IMAGE) bereit, sodass Ihre Pipeline sich anmelden und Images in die Container Registry des Projekts pushen kann, ohne dass zusätzliche Secrets benötigt werden.
Hier ein Beispiel-Job, der Ihr Image baut und pusht:
build-and-push:
stage: build
image: docker:27
services:
- docker:27-dind
variables:
DOCKER_TLS_CERTDIR: "/certs"
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
script:
- docker build -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" .
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA"
# Wenn Sie sich auf dem Default-Branch befinden, können Sie zusätzlich "latest" taggen und pushen:
- |
if [ "$CI_COMMIT_BRANCH" = "$CI_DEFAULT_BRANCH" ]; then
docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:latest"
docker push "$CI_REGISTRY_IMAGE:latest"
fi
Wenn Sie Ihre Images in eine andere Registry (wie Docker Hub oder eine private Registry) pushen möchten, können Sie die Zugangsdaten als CI/CD-Variablen speichern und diese wie oben mit docker login verwenden.