簡體   English   中英

在jenkins上使用docker插件 -

[英]using docker plugin on jenkins -

我正在嘗試使用Jenkins上的docker插件來運行現有容器的實例。 Docker版本1.6.0,內部版本為4749651

我選擇了“創建容器”輸入圖像名稱的圖像ID,並嘗試了主機http://172.16.42.43:4243並嘗試了一個空主機。 我一直收到這個錯誤:

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

有人能告訴我如何解決它嗎? 此外,如果有人之前使用過這個插件,請告訴我這是否有效。

還嘗試了“執行docker container” - >使用指定的容器id啟動容器導致相同的錯誤。

另一種方法:我嘗試使用Execute shell插件,我收到此錯誤:

+ 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"

如果我只是去終端,切換到jenkins用戶並運行docker start命令,它工作正常。 如果有人知道如何以這種方式修復它,那也會很棒。

假設Docker在同一台機器上運行,請確保運行Docker:

-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock

然后轉到Manage Jenkins> Configuration> Configure System,然后向下滾動到Docker Builder ,在Docker服務器REST url中輸入http://localhost:4243

編輯:我最初告訴Docker監聽0.0.0.0綁定到所有IP地址,如果你的防火牆讓流量通過,可以允許來自外部的連接。 所以我更新了它以綁定到環回地址。 此外,當前版本的文檔建議使用不同的端口,但由於您手動指定端口,因此任何端口都可以。

您需要授予Jenkins用戶使用docker的權限,購買將其添加到docker組,運行

sudo usermod -a -G docker jenkins

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM