2017-04-21 84 views
0

我有一个jenkins声明性管道构建,运行gradle并使用gradle插件创建码头图像。我也使用dockerfile代理指令,因此整个事情在docker容器中运行。这对于jenkins本身安装在docker中非常有效(我知道,这是很多docker)。我将jenkins安装在Docker for Mac上的docker容器中,并使用-v /var/run/docker.sock:/var/run/docker.sock(DooD),每https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/。通过这个设置,管道docker代理运行良好,管道docker代理中的docker build命令也运行良好。我认为詹金斯还将码头插座安装在其内部码头集装箱上。jenkins管道码头建立在码头代理

现在我试图在安装了正确安装docker的ec2实例上安装jenkins。詹金斯用户将码头组作为其主要组。 jenkins用户能够成功运行“docker run hello-world”。我的管道建设启动泊坞窗剂容器(基于添加了各种事物的gradle这个图像上),但是当gradle这个尝试运行泊坞窗build命令,我得到如下:

* 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? 

是否有可能建立内部泊坞窗图片使用声明式管道的码头代理?

回答

0

是的。

问题不在詹金斯的声明式管道中,而是你如何设置和运行的东西。

从上面的错误,看起来像有一个需要授予的权限丢失。

也许如果你分享你的配置看起来像什么以及你如何运行的东西,更多的人可以提供帮助。