2016-07-31 13 views
1

Ich möchte meine Jenkins CI in einem Docker-Container haben.Ant arbeitet nicht mit Jenkins in einem Docker-Container

Ich habe die Jenkins Docker Bild gezogen und begann es following the documentation:

sudo docker run -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins 

Jenkins in Ordnung gestartet wird, ich konfigurieren den Auftrag für das Projekt mit Ant als Build-Tool.

Als ich den Auftrag ausführen, wirft Jenkins die folgenden Fehler in Bezug auf Ant (unabhängig von dem konfigurierten Build-Ziel):

ERROR: command execution failed.Maybe you need to configure the job to choose one of your Ant installations?

Aber, wenn ich in den Arbeitsbereich Verzeichnis des Build gehen (/var/jenkins_home/workspace/my_job/) und ausführen das gleiche Ziel, bekomme ich keinen Fehler:

ant clean 

Was mache ich falsch?

+2

Betreiben Sie Ihren Build-Knoten auf Master? Wenn dem so ist - haben Sie wahrscheinlich keine "Ameisen" * im Container. Sie können es versuchen, 'docker exec your_jenkins_container_name ant --version' auszuführen. Leider bin ich mir nicht sicher, ob ich Ihnen in Ihrem Fall einen richtigen Weg vorschlagen kann. – izzekil

Antwort

1

Wie @izzekil gezeigt hat, wurde Ant nicht im Container installiert, sondern nur im Host-Rechner.

Es hat genug Ant in dem Behälter (läuft mit root Benutzer) zu installieren:

sudo docker run -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -u root jenkins 

Und dann:

sudo docker exec <container_id> apt-get update 
sudo docker exec <container_id> apt-get install ant -y 
+0

Ist dies die beste Vorgehensweise, um Jenkins als Rootbenutzer auszuführen? Kann dieser Benutzer jemals den Container verlassen? – Eddie

Verwandte Themen