GitLab läuft im kubernetes-Cluster. Runner kann kein Docker-Image mit Buildartefakten erstellen. Ich habe bereits verschiedene Ansätze ausprobiert, um dieses Problem zu beheben, aber kein Glück. Hier sind einige Configs Snippets:
.gitlab-ci.yml
%Vor%config.toml
%Vor%Paketzeitprotokoll:
%Vor%Was mache ich falsch?
Muss nicht verwendet werden:
%Vor%Weil es so aussieht, als ob OVERLAY nicht unterstützt wird, kann svc-0 container nicht damit anfangen:
%Vor% Fügen Sie auch export DOCKER_HOST="tcp://localhost:2375"
zum docker-build hinzu:
Wenn Sie Kubernetes verwenden, müssen Sie Ihr Build-Bild anpassen, um eine Verbindung mit der Docker-Engine herzustellen.
Fügen Sie Ihrem Build-Image Folgendes hinzu:
%Vor%Zitat aus der Dokumentation:
Ausführen des Andockers: dind wird auch als Docker-in-docker-Image bezeichnet möglich, aber leider müssen die Container im privilegierten Modus ausgeführt werden. Wenn Sie bereit sind, dieses Risiko einzugehen, werden andere Probleme auftreten, die es möglicherweise nicht gibt scheinen auf den ersten Blick einfach zu sein. Weil der Andockdämon gestartet wurde Als Dienst wird in der Regel in Ihrem .gitlab-ci.yaml als separater Dienst ausgeführt Container in Ihrem Pod. Grundsätzlich teilen Container in Pods nur zugewiesene Volumes ihnen und einer IP-Adresse, mit der sie sich über localhost erreichen können. /var/run/docker.sock wird vom Andockfenster nicht verwendet: dind container und docker binary versucht, es standardmäßig zu verwenden. Um dies zu überschreiben und den Client tcp benutzen zu lassen Um den Docker-Daemon im anderen Container zu kontaktieren, achten Sie darauf, dass Sie ihn einschließen DOCKER_HOST = tcp: // localhost: 2375 in Ihren Umgebungsvariablen des Build-Containers.
Tags und Links docker kubernetes gitlab gitlab-ci-runner