maven Windows上的DOKER_HOST环境变量

bxjv4tth  于 2022-10-26  发布在  Maven
关注(0)|答案(7)|浏览(157)

我在Windows 10机器上运行Docker 1.12.0。我正在开发一个Java程序,使用Maven 3.3.9作为依赖项管理器。我有一个maven docker插件(https://github.com/fabric8io/docker-maven-plugin),它在全新安装时出现以下错误。
[错误]无法执行目标io.Fabric 8:docker-maven-plugin:0.15.16:项目集成上的构建(docker-Build-start)-test:执行docker-build-start目标io.Fabric 8:docker-maven-plugin:0.15.16:构建失败:未提供<dockerHost><machine>,未提供DOCKER_HOST环境变量,也未进行读/写‘/var/run/docker.sock’->[Help 1]
当我在POM文件中使用以下配置选项运行全新安装时:

<dockerHost>tcp://0.0.0.0:2376</dockerHost>

结果如下所示。
[错误]无法执行目标io.Fabric 8:docker-maven-plugin:0.15.16:在项目集成上生成(docker-Build-Start)-test:无法创建docker访问对象:无法从服务器提取API版本https://0.0.0.0:2376:连接到0.0.0.0:2376[/0.0.0.0]失败:连接被拒绝:连接->[帮助1]
我的问题是:有没有一个IP地址可以用来告诉这个maven插件它可以到达守护进程的哪里?正常的停靠命令工作得非常好。该插件在OS X上运行没有任何问题。

zqdjd7g9

zqdjd7g91#

在谷歌搜索了将近一天没有结果之后,我自己找到了这个解决方案。虽然微不足道,但仍能帮助他人。

您需要启用“在...上显示后台进程”复选框。在设置->常规下

tkqqtvp1

tkqqtvp12#

在装有Docker for Windows的Windows 10上,Docker Engine API位于以下两个位置:

  • npipe:////./pipe/docker_engine
  • http://localhost:2375

我建议尝试使用本地主机。
详情请点击此处:https://docs.docker.com/docker-for-windows/faqs/#/how-do-i-connect-to-the-remote-docker-engine-api

z31licg0

z31licg03#

运行Maven Goals的用户似乎没有访问docker.sock的权限。错误消息告诉您有哪些选项可以解决问题。
没有给定<dockerHost><machine>,没有DOCKER_HOST环境变量,并且没有可读/写的‘/var/run/docker.sock
最后一个选项最简单,因为它需要文件权限,并且不需要创建任何docker机器或设置Docker_host,在Linux上,您可以通过以下方式更改docker.sock的读/写权限:

sudo chmod 776 /var/run/docker.sock

在Windows上阅读本文:Microsoft article

pnwntuvh

pnwntuvh4#

如果在eclipse中使用Windows和Maven构建Java项目,但仍然看到该错误,则必须执行以下步骤:
第1步:
您需要启用“在...上显示后台进程”复选框。在@Adriaan Koster提到的设置->常规下
如果步骤1不能解决问题,那么
第二步:在管理模式下运行您的eclipse。现在,它应该可以毫无问题地运行。

vptzau2j

vptzau2j5#

当我尝试在定制的GitLab CI/CD运行器中构建项目时,我遇到了同样的问题,而另一个用户不是根用户,而是在定制的构建映像中定义的。我通过将用户的读/写权限设置为扩展底座修复了此问题。

chmod o+rw /var/run/docker.sock
2nbm6dog

2nbm6dog6#

如果某人只是想跳过Fabric 8 docker-maven-plugin执行,这会阻止构建成功,但会出错
没有给定,没有DOKER_HOST环境变量,没有可读/写的‘/var/run/docker.sock’或‘//./管道/DOKER_ENGINE’,也没有配置像DOKER MACHINE这样的外部提供程序
根据https://dmp.fabric8.io/#global-configuration.的说法,这可以通过-Ddocker.skip=true实现

uxhixvfz

uxhixvfz7#

如果您正在使用工具箱,请使用对接机。

<machine>
                <name>default</name>
                <autoCreate>true</autoCreate>
                <createOptions>
                    <driver>virtualbox</driver>
                    <virtualbox-cpu-count>2</virtualbox-cpu-count>
                </createOptions>
            </machine>

相关问题