【发布时间】:2017-06-05 16:20:06
【问题描述】:
我在本地 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) 在项目上 monitoramentoRS:捕获到异常: 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>
【问题讨论】:
-
您使用的是 Windows 10 专业版吗?你能粘贴你的 docker-maven-plugin 配置和 %HOME%\.docker\config.json 吗?我在 Windows 10 中使用它时也遇到了一些问题。
-
@EricHans:是的,它是 Win 10 Pro。我在问题中添加了插件配置和 config.json 内容。
-
你有什么云提供商?您是否将服务器证书添加到 docker 或登录忽略 tls?
-
云提供商是 OpenShift (oc v1.3.0 kubernetes v1.3.0+52492b4)。我没有添加服务器证书,但我的 docker 守护进程配置在“insecure-registries”集合中列出了我的 OpenShift 私有 docker 注册表。
标签: docker docker-for-windows docker-desktop docker-maven-plugin