我在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服务。

10-07 13:19
查看更多