一尘不染

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

docker

我正在尝试使用docker-maven-plugin(由
spotify 提供:https : //github.com/spotify/docker-maven-plugin提供)构建docker映像,但
实际上并没有解决问题。一开始我遇到了这个异常:

org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375

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

set DOCKER_HOST=set DOCKER_HOST=tcp://192.168.99.100:2376

docker_host

So after setting that env. variable I keep getting this
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

我不知道如何解决此问题,我们将不胜感激。


阅读 468

收藏
2020-06-17

共1个答案

一尘不染

您必须使用主机在2375端口上侦听来配置virtualbox端口转发:

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

guestsh是端口转发的名称,您可以选择名称。

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

“pathVirtualBox\VBoxManage.exe”

然后,如果出现类似“服务器无法通过有效的HTTP响应进行响应”这样的问题,则将certs文件从
“%USER%.docker \ machines \ certs” 复制到“%USER%.docker”,从而
导致docker -maven-plugin在“%USER%.docker”中读取此文件(不要复制目录证书,仅复制文件)。

我认为我们可以重写Maven属性以替换端口2375和certs路径,但我仍然找不到它。

2020-06-17