我在Docker容器中运行Jenkins,Jenkins尝试运行我的Maven构建。作为构建的一部分,docker maven插件指示其构建docker镜像。
POM的该部分如下。
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.3.8</version>
<configuration>
<imageName>example</imageName>
<baseImage>java:latest</baseImage>
<skipDockerBuild>false</skipDockerBuild>
<cmd>["java", "-jar", "myLogThread-jar-with-dependencies.jar"]</cmd>
<resources>
<resource>
<directory>target/</directory>
<include>config.properties</include>
</resource>
<resource>
<directory>${project.build.directory}</directory>
<include>myLogThread-jar-with-dependencies.jar</include>
</resource>
</resources>
</configuration>
</plugin>
Maven构建将一直运行,直到尝试构建镜像为止,此时将吐出以下错误消息:
[INFO] Building image example
[INFO] I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Permission denied
我可以进入正确的目录,并且Dockerfile在那里。
我也可以运行
sudo docker build .
,它将毫无问题地构建镜像。为什么Maven构建失败?正在向localhost:80发出什么请求?我该如何纠正这个问题,以便行家可以建立我的形象?
注意:我已经在此容器中安装了docker套接字和二进制文件
最佳答案
正如Rajith Delantha上文所述,这为我解决了问题:
添加:DOCKER_OPTS=' -G jenkins'
直接在/etc/default/docker
中。
然后通过sudo service docker restart
重新启动docker服务。