mit docker-Plug-in für jenkins -
Ich versuche, das docker-Plug-in für Jenkins zum ausführen einer Instanz eines vorhandenen Containers.
Docker version 1.6.0, bauen 4749651
Habe ich gewählt "create container"
Eingegeben wird die Bild-id für den Namen des Bildes, und versucht, eine host - http://172.16.42.43:4243 und auch versucht, ein leeres host.
Ich bekomme immer diese Fehlermeldung:
ERROR: Build step failed with exception
java.lang.NullPointerException: uri was not specified
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:204)
at com.github.dockerjava.core.DockerClientConfig$DockerClientConfigBuilder.withUri(DockerClientConfig.java:406)
at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder$DescriptorImpl.createDockerClient(DockerBuilder.java:123)
at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder$DescriptorImpl.getDockerClient(DockerBuilder.java:201)
at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder.perform(DockerBuilder.java:71)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
at hudson.model.Build$BuildExecution.build(Build.java:205)
at hudson.model.Build$BuildExecution.doRun(Build.java:162)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:537)
at hudson.model.Run.execute(Run.java:1744)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:374)
Build step 'Execute Docker container' marked build as failure
Kann mir jemand sagen wie es zu lösen ist?
Auch, wenn jemand hat sich mit diesem plugin vor, bitte lassen Sie mich wissen, wenn dies je gearbeitet hat.
Habe auch versucht die "Ausführen docker-container"->start-Container mit der container-id angegeben was in die gleichen Fehler.
Einem anderen Ansatz:
Ich habe versucht mit der shell Ausführen-plug-in und ich bin immer diese Fehlermeldung:
+ docker start d023eec1ff34
Post http:///var/run/docker.sock/v1.18/containers/d023eec1ff34/start: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
time="2015-05-05T10:26:34-07:00" level=fatal msg="Error: failed to start one or more containers"
Wenn ich einfach gehe zum terminal, wechseln Sie zu jenkins-Benutzer und führen Sie den start-Befehl Andockfenster, es funktioniert gut.
Wenn jemand weiß wie es zu lösen ist, dieser Weg, das wäre toll als gut.
- docker-version ? Überprüfen Sie die Protokolle von docker (es kann sein, in /var/log/Andockfenster.log oder in /var/log/upstart/Andockfenster.melden Sie, je nach OS), die auch versuchen, starten Sie den Docker-daemon im debug-Modus. siehe --debug=true docs.docker.com/reference/commandline/cli/#daemon
- Kann sein, dass das extrahieren von serverfault.com/questions/639459/... ich glaube, Sie geben jenkins-Gruppe Privilegien zu Andockfenster unix-socket löst das Problem. Dies kann geändert werden, mit der Konfiguration von docker-daemon startup-Optionen im Konfigurations-Datei durch hinzufügen dieser Zeile DOCKER_OPTS=' -G jenkins' In ubuntu /etc/default/docker die docker-Konfiguration-Datei.
- Ich habe versucht, hinzufügen, dass zu den jenkins-Standard. Auch ich habe versucht, indem jenkins-Benutzer, um die docker-Gruppe. Ich hab das auf 2 Maschinen mit kein Glück.
- hast du einen Neustart ?
- ja. Ich neu gestartet jenkins. Auch, überprüft die Protokolle. Es ist nicht die Protokollierung alles, was entsprechen würde dem jenkins laufen. Warum gibt es Klagen über die uri, die bei der Nutzung der plugin?
- Haben Sie jemals finden eine Lösung für dieses?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt Docker ist auf dem gleichen Rechner laufen, stellen Sie sicher, dass Sie das Andockfenster mit:
-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock
Dann gehen Sie zu Verwalten Jenkins > Konfiguration - > System Konfigurieren dann scrollen Sie nach unten, um Andockfenster Builder und in der Docker-server-REST-url geben Sie
http://localhost:4243
Bearbeitet: ich hatte ursprünglich gesagt, Docker, zu hören auf 0.0.0.0, die bindet an alle IP-Adressen und könnte, dass verbindungen von außen, wenn Sie Ihre Firewall lässt den Datenverkehr durch. Also habe ich aktualisiert, es zu binden, um die loopback-Adresse statt. Auch die aktuelle version der Dokumentation empfiehlt einen anderen port, aber da geben Sie den port manuell jedem Hafen tun.
Müssen Sie zu geben, Jenkins-Benutzer Berechtigungen für die Verwendung von docker, kaufen Sie es zu Andockfenster Gruppe, laufen