Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当docker maven插件尝试构建图像时会发生什么?_Maven_Plugins_Jenkins_Permissions_Docker - Fatal编程技术网

当docker maven插件尝试构建图像时会发生什么?

当docker maven插件尝试构建图像时会发生什么?,maven,plugins,jenkins,permissions,docker,Maven,Plugins,Jenkins,Permissions,Docker,我在docker容器中运行Jenkins,Jenkins尝试运行我的maven构建。作为构建的一部分,docker maven插件指示它构建docker映像 POM的这一部分如下所示 <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.3.8</versio

我在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>
我可以进入正确的目录,Dockerfile就在那里

我还可以运行
sudocker build.
,它将构建没有问题的映像

为什么maven构建失败了?正在向localhost:80发出什么请求?我如何纠正这一点,以便maven能够建立我的形象


注意:我已经在这个容器中安装了docker套接字和二进制文件

这可以通过在Jenkins中添加
docker\u主机
环境变量来解决

按如下方式设置docker守护程序:

[/etc/sysconfig/docker]
OPTIONS="-H tcp://127.0.0.1:4243"
Jenkins作业(注入环境变量):


如Rajith Delantha所述,这为我解决了问题:

添加:
DOCKER\u OPTS='-G jenkins'
直接在
/etc/default/DOCKER
中添加

DOCKER_OPTS="-H tcp://127.0.0.1:4243"

然后通过
sudo service docker restart重新启动docker服务

我也遇到了同样的问题,但是在我的本地机器上

我在Github线程中阅读了以下评论后得到:

它说:

解决方案(来自 ,没有 仅适用于Debian):

如果docker组尚不存在,请添加该组

sudo groupadd docker

将连接的用户“${user}”添加到docker组。更改用户 名称以匹配您的首选用户。您可能需要注销并重新登录 为了使这一点生效,我们再次采取行动

sudo gpasswd-a${USER}docker

重新启动Docker守护进程

sudo服务docker重启


我能够通过结合两个投票结果的元素来解决这个问题

/etc/default/docker
中设置使用不同端口的选项

DOCKER_OPTS="-H tcp://127.0.0.1:4243"
重新启动Docker守护进程

sudo service docker restart
然后构建您的包

export DOCKER_HOST=tcp://127.0.0.1:4243
mvn clean package docker:build

我在竹业代理公司遇到了这个问题,但我认为詹金斯也是如此

将运行maven的用户添加到docker组。然后重新启动docker和运行maven的服务。服务运行时未加载组更改。就我而言:

sudo groupadd docker # if it does not exist
sudo usermod -a -G docker bamboo-user
sudo systemctl restart docker.service
sudo systemctl restart bamboo-agent.service

在确保运行
mvn
的同一用户使用
docker ps
后,我仍然遇到同样的问题。 由于图像名称中的特殊字符,它看起来像一个bug。我通过从docker图像名称中删除破折号(-)(或任何特殊字符)解决了这个问题

尝试将存储库设置为“不同的名称”,然后进行检查

            <configuration>
                <repository>somename</repository>                    
            </configuration>

名字

当我没有运行docker守护进程时,我遇到了类似的问题-重新启动docker工具箱,现在看起来更开心了

我和Jenkins也遇到了同样的问题

将詹金斯添加到docker组

sudo usermod -aG docker jenkins

那就去詹金斯吧。

你有没有想过?我遇到了同样的问题。请尝试直接在/etc/default/DOCKER中添加
DOCKER\u OPTS='-G jenkins'
。然后通过
sudo service docker restart
重新启动docker服务我在完全相同的环境中遇到了相同的问题。有人知道解决办法吗?
sudo usermod -aG docker jenkins