2017-04-21 7 views
0

Ich habe eine jenkins deklarative pipeline build, die grandle ausgeführt wird und ein gradle plugin verwendet, um ein docker image zu erstellen. Ich verwende auch eine Dockerfile-Agent-Anweisung, so dass das Ganze in einem Andock-Container ausgeführt wird. Das funktionierte großartig mit jenkins selbst im docker installiert (ich weiß, das ist eine Menge Docker). Ich hatte Jenkins installiert in einem Docker Container auf Docker für Mac, mit-v /var/run/docker.sock:/var/run/docker.sock (DooD) per https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/. Mit dieser Konfiguration funktionierte der Pipeline-Docker-Agent ordnungsgemäß, und der Docker-Build-Befehl innerhalb des Pipeline-Docker-Agenten lief ebenfalls gut. Ich nahm an, dass Jenkins auch den Docker-Sockel an seinem inneren Docker-Container montiert hatte.jenkins pipeline docker bauen auf docker agent

Jetzt versuche ich dies auf jenkins installiert auf einer ec2-Instanz mit Docker ordnungsgemäß installiert. Der Benutzer jenkins hat die Docker-Gruppe als primäre Gruppe. Der Benutzer jenkins kann "docker run hallo-world" erfolgreich ausführen. Meine Pipeline zu bauen beginnt die Docker Mittelbehälter (basierend auf dem gradle Bild mit verschiedenen Dingen hinzugefügt), aber wenn gradle Versuche, den Docker Build-Befehl auszuführen, erhalte ich die folgende:

* What went wrong: 
Execution failed for task ':docker'. 
> Docker execution failed 
    Command line [docker build -t config-server:latest /var/lib/****/workspace/nfig-server_feature_****-HRUNPR3ZFDVG23XNVY6SFE4P36MRY2PZAHVTIOZE2CO5EVMTGCGA/build/docker] returned: 
    Cannot connect to the Docker daemon. Is the docker daemon running on this host? 

Ist es möglich, Docker Bilder innen zu bauen ein Andock-Agent mit deklarativer Pipeline?

Antwort

0

Ja, ist es.

Das Problem liegt nicht in der deklarativen Pipeline von Jenkins, sondern darin, wie Sie Dinge einrichten und ausführen.

Aus dem obigen Fehler sieht aus, als gäbe es eine fehlende Berechtigung, die gewährt werden muss.

Vielleicht, wenn Sie teilen, wie Ihre Konfiguration aussieht und wie Ihre Dinge laufen, können mehr Leute helfen.