2016-01-15 5 views
6

Я пытаюсь создать изображение докеров с помощью docker-maven-plugin (предоставлено путем spotify: https://github.com/spotify/docker-maven-plugin), но на самом деле все не работает. Сначала я получил это исключение:Плагин Docker maven ClientProtocolException (Windows 10 с помощью Docker Toolbox)

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

Я узнал, что должен был создать env. Переменная, чтобы исправить это (https://github.com/spotify/docker-maven-plugin/issues/135):

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

docker_host

Таким образом, после установки этой окр. переменный Я получаю эту 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 

Я понятия не имею, как я могу это исправить, любой вклад будет высоко оценен.

ответ

4

Вы должны настроить перенаправление портов в VirtualBox с хостом прослушивает 2375 порт:

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

guestssh это имя переадресации портов, вы можете выбрать имя.

если VBoxManage не признают, вы можете заменить его на полный путь:

«pathVirtualBox \ VBoxManage.exe»

И после того, как если у вас есть вопрос, как «Сервер не смог ответить достоверный ответ HTTP» скопировать CERTS файлы из
"% USER% .docker \ машины \" сертификатов
в
"% USER% .docker"
причина докер-Maven-плагин читать эту п iles в «% USER% .docker» (не копируйте сертификаты каталога, просто файлы).

Я думаю, что мы можем переопределить свойства maven для замены порта 2375 и certs, но я его еще не нашел.

+0

Жаль, что я не могу дать этот ответ более upvotes. Если переадресация портов была настроена ранее, чтобы найти этот ответ, но все еще борется с «_ Сервер не смог ответить с допустимым ответом HTTP». После копирования сертификатов, как это предлагается в этом ответе, все приступило к работе, как ожидалось. Большое спасибо! – jigga

3

исправил по:

 <plugin> 
      <groupId>com.spotify</groupId> 
      <artifactId>docker-maven-plugin</artifactId> 
      <version>0.4.13</version> 
      <configuration> 
       <imageName>yourImageName</imageName> 
       <dockerDirectory>src/main/docker</dockerDirectory> 
       <dockerHost>https://192.168.99.100:2376</dockerHost> 
       <dockerCertPath>/Users/your_user/.docker/machine/machines/default</dockerCertPath> 
       <resources> 
        <resource> 
         <targetPath>/</targetPath> 
         <directory>${project.build.directory}</directory> 
         <include>${project.build.finalName}.jar</include> 
        </resource> 
       </resources> 
      </configuration> 
     </plugin> 

важны эти два тега:

<dockerHost>https://192.168.99.100:2376</dockerHost> 
<dockerCertPath>/Users/your_user/.docker/machine/machines/default</dockerCertPath> 

Я использую dockerfile, какой путь вы должны определить с этим тегом:

<dockerDirectory>src/main/docker</dockerDirectory> 

Теперь вы можете построить свою банку и создать изображение докера через:

МВН пакет докер: построить

0

докер-машина окр по умолчанию

set DOCKER_HOST=tcp://192.168.99.100:2376 
set DOCKER_MACHINE_NAME=default 
set DOCKER_TLS_VERIFY=1 
set DOCKER_TOOLBOX_INSTALL_PATH=C:\Program Files\Docker Toolbox 
set DOCKER_CERT_PATH=C:\Users\panhl-a\.docker\machine\machines\default 
Смежные вопросы