2017-04-26 3 views
0

Ich versuche, Jenkins in Docker und laufen zu bekommen. Ich verwende die official repo und ziehe das neueste Tag.Jenkins Docker werfen Ausnahme und offline starten

docker run -u 498 --name awsjenkins -p 8080:8080 -p 50000:50000 -v /mnt/jenkins:/var/jenkins_home jenkins 

Es beginnt in Ordnung, aber es ist ein Fehler zu werfen:

Apr 26, 2017 9:14:27 PM hudson.model.UpdateCenter updateDefaultSite 
WARNING: Upgrading Jenkins. Failed to update the default Update Site 'default'. Plugin upgrades may fail. 
java.io.IOException: Server returned HTTP response code: 503 for URL: http://updates.jenkins-ci.org/update-center.json?id=default&version=2.46.2 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1876) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474) 
    at hudson.model.DownloadService.loadJSON(DownloadService.java:172) 
    at hudson.model.UpdateSite.updateDirectlyNow(UpdateSite.java:190) 
    at hudson.model.UpdateCenter.updateDefaultSite(UpdateCenter.java:2197) 
    at jenkins.install.SetupWizard.init(SetupWizard.java:174) 
    at jenkins.install.InstallState$3.initializeState(InstallState.java:105) 
    at jenkins.model.Jenkins.setInstallState(Jenkins.java:1061) 
    at jenkins.install.InstallUtil.proceedToNextStateFrom(InstallUtil.java:96) 
    at jenkins.model.Jenkins.<init>(Jenkins.java:951) 
    at hudson.model.Hudson.<init>(Hudson.java:86) 
    at hudson.model.Hudson.<init>(Hudson.java:82) 
    at hudson.WebAppMain$3.run(WebAppMain.java:231) 

EIN curl -L zu dieser URL von dem Host-Rechner ein 301 zurück, so dass ich glaube nicht, dass es ein Firewall-Problem ...

Ich führe dies auf Amazon, aber ich denke nicht, dass das irgendwelche Probleme verursachen würde. Ich habe die Sicherheitsgruppen sogar nur für Kick geöffnet, aber ich bekomme immer noch diesen Fehler. Außerdem kann ich auf Jenkins zugreifen. Aber wenn ich das tue, sagt es mir, dass Jenkins offline läuft.

Irgendwelche Gedanken dazu?

+1

Können Sie in den laufenden Container 'docker exec'und' curl' die URL, die 503 gibt und bestätigen, dass es funktioniert? –

+0

Danke Andy. Sobald ich mich anmeldete, wusste ich sofort, was das Problem war ... Ich habe es unten beantwortet. – Sathed

Antwort

0

Nun, hoffentlich hilft das jemand anderem ... Dank Andys Kommentar konnte ich es herausfinden.

Es gibt ein paar Dinge hier los.

  1. Die offizielle Dockerfile verwendet standardmäßig 1000 für die UID und GID. Aber wirklich, 1000 wird typischerweise von einem Kandidaten im Host-Betriebssystem belegt. Persönlich denke ich, dass es etwas unklarer sein sollte. Just my $ .02 ...
  2. Beim Überschreiben der uid erstellt es tatsächlich nicht die Gruppe. In Jenkins offizielle Dokumentation auf Docker Hub, heißt es:

Ensure that /your/home is accessible by the jenkins user in container (jenkins user - uid 1000) or use -u some_other_user parameter with docker run .

Das Update ist ziemlich einfach - die Dockerfile ziehen, ändern Sie es mit Ihrem lokalen Benutzer und uid/gid (es gibt mehrere Möglichkeiten zu arbeiten, dies zu tun), und baue/laufe es.