无法执行目标 io.fabric8:docker-maven-plugin:0.21.0:build window 10 home OR pro

vim*_*hna 4 plugins maven docker

将 Docker 与 Maven Docker Maven 插件集成。我在 Windows 10 家用计算机上通过 Maven 运行 Docker 时遇到问题。使用以下跟踪构建失败。

DOCKER> Cannot create docker access object  [Cannot extract API version from 
server https://192.168.99.100:2376 : 
sun.security.validator.ValidatorException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to find 
valid certification path to requested target]
[INFO]
Failed to execute goal io.fabric8:docker-maven-plugin:0.21.0:build (default-
cli) on project fleetman: Cannot create docker access object: Cannot extract 
API version from server https://192.168.99.100:2376 : 
sun.security.validator.ValidatorException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to find 
valid certification path to requested target -> [Help 1]
[ERROR]
Run Code Online (Sandbox Code Playgroud)

vim*_*hna 5

如果您使用的是 Windows 10 主页,解决方案是:

我们正在制作干净的软件包 docker:build 作为目标

首先获取你的docker安装的环境变量

$ docker-machine env
Run Code Online (Sandbox Code Playgroud)

你会得到这样的东西

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\vimal\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
export COMPOSE_CONVERT_WINDOWS_PATHS="true"
Run Code Online (Sandbox Code Playgroud)

DOCKER_CERT_PATH已在您的计算机中,您可以验证具有 CA 证书的文件夹内容,该证书已在安装过程中生成,无需进一步执行。

您只需将条目添加到 POM 文件中,让我们看看...

<!-- DMP Docker Maven Plugin  https://dmp.fabric8.io/ -->
        <plugin>
            <groupId>io.fabric8</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.21.0</version>

            <configuration>
                <!-- <dockerHost>http://127.0.0.1:2375</dockerHost> for window 10 pro-->
                <!-- this is for Mac and Amazon Linux -->
                <!-- <dockerHost>unix:///var/run/docker.sock</dockerHost> -->
                <dockerHost>tcp://192.168.99.100:2376</dockerHost>
                <verbose>true</verbose>

                <images>
                    <image>
                        <name>vimalkrishna/abc-app</name>
                        <build>
                            <dockerFileDir>${project.basedir}/src/main/docker/</dockerFileDir>

                            <assembly>
                                <descriptorRef>artifact</descriptorRef>
                            </assembly>
                            <tags>
                                <tag>latest</tag>
                            </tags>
                        </build>
                    </image>
                </images>
                <certPath>C:\Users\vimal\.docker\machine\machines\default</certPath>
            </configuration>
        </plugin>
    </plugins>
Run Code Online (Sandbox Code Playgroud)

您可以将上面的内容复制粘贴到您的 POM 中并更改您机器的 XXX。只有以下 2 条条目是您从env获得的需要调整的条目。Dockertoolkit(Window 10 home)需要192.168.99.100,与window 10专业版的127.0.0.1不同

<name>vimalkrishna/abc-app</name>

<dockerHost>tcp://192.168.99.100:2376</dockerHost>
<certPath>C:\Users\XXX\.docker\machine\machines\default</certPath>
Run Code Online (Sandbox Code Playgroud)

就这样,构建将会成功。将您的用户名和密码放入本地配置文件中

重要的! Dickerfile 在您的应用程序中的位置是

<dockerFileDir>${project.basedir}/src/main/docker/</dockerFileDir>
Run Code Online (Sandbox Code Playgroud)

意味着在 src/main/ 中创建一个文件夹docker

在此输入图像描述