我在本地 Windows 10 Pro 机器上使用Docker Desktop for Windows v1.13.0 和 docker -maven-plugin v0.4.13。我mvn clean package docker:build
用来构建我的项目并生成 docker 映像。构建失败:
[信息] --------------------------------------------- ------------------------- [信息] 构建失败 [信息] ----------------- -------------------------------------------------- ----- [INFO] 总时间:25.006 s [INFO] 完成时间:2017-01-19T14:48:45-02:00 [INFO] 最终内存:68M/619M [INFO] ------ -------------------------------------------------- ---------------- [错误] 无法在项目监视器上执行目标 com.spotify:docker-maven-plugin:0.4.13:build (default-cli): 捕获异常: java.util.concurrent.ExecutionException:com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException:javax.net.ssl.SSLException:无法识别的 SSL 消息,明文连接?-> [帮助 1]
直接在命令行上创建 docker 镜像 ( docker build -t ...
) 工作正常。maven 插件在 Windows 7 上与 Docker 工具箱和 Oracle Virtual Box 一起工作得很好。
因此,我相信 docker-maven-plugin 和 Docker for Windows 守护程序之间存在与 TLS 相关的配置问题。我尝试了不同的配置组合,使用DOCKER_HOST
(没有端口指示,2375, 2376), DOCKER_TLS_VERIFY
,DOCKER_TLS
但无济于事。还尝试了“高级”Docker for Windows 守护程序配置的"tls"
和"tlsverify"
属性。
有没有人能够让 docker-maven-plugin 在 Docker for Windows 上创建一个 docker 镜像?
我的%HOME%\.docker\config.json
文件只包含一个auths
集合:
{
"auths": {
"our-corporate-private-docker-registry-address": {
"auth": "an-authorization-token"
},
"https://index.docker.io/v1/": {
"auth": "an-authorization-token"
}
}
}
下面是 docker-maven-plugin 配置。
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<useConfigFile>false</useConfigFile> <!-- true yields the same error -->
<registryUrl>${docker.private.registry}</registryUrl>
<imageName>${docker.private.registry}/myrepo/myimage</imageName>
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<dockerDirectory>${basedir}/docker</dockerDirectory> <!-- Dockerfile location -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory> <include>${project.build.finalName}.${project.packaging}</include>
</resource>
</resources>
</configuration>
</plugin>