Docker maven插件ClientProtocolException(使用Docker Toolbox的Windows 10)

Jdr*_*uwe 8 java spotify maven docker docker-toolbox

我正在尝试使用docker-maven-plugin(由spotify提供:https://github.com/spotify/docker-maven-plugin)来构建一个docker镜像,但事情并没有真正解决.起初我得到了这个例外:

org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375
Run Code Online (Sandbox Code Playgroud)

我发现我必须创建一个环境.变量来解决这个问题(https://github.com/spotify/docker-maven-plugin/issues/135):

set DOCKER_HOST=set DOCKER_HOST=tcp://192.168.99.100:2376
Run Code Online (Sandbox Code Playgroud)

docker_host

所以在设置了env之后.变量我一直得到这个ClientProtocolException:

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.3.258:build (default-cli) on project docker_micro_maven: Exception caught: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: org.apache.http.client.ClientProtocolException: The server failed to respond with a valid HTTP response
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个问题,任何输入都会非常感激.

小智 5

您必须使用主机侦听2375端口配置虚拟机端口转发:

> VBoxManage modifyvm "default" --natpf1 "guestssh,tcp,,2375,,2376"

guestssh是端口转发的名称,您可以选择名称.

如果VBoxManage无法识别,您可以用完整路径替换它:

"pathVirtualBox\VBoxManage.exe"

如果您遇到"服务器无法通过有效的HTTP响应响应"等问题,请将证书文件从
"%USER%..docker\machines\certs" 复制

"%USER%.docker"
导致docker -maven-plugin在"%USER%.docker"中读取此文件(不要复制目录证书,只复制文件).

我认为我们可以覆盖maven属性来替换端口2375和证书路径,但我仍然没有找到它.