2016-01-15 29 views
6

Tôi đang cố gắng xây dựng một hình ảnh docker bằng cách sử dụng docker-maven-plugin (được cung cấp bởi spotify: https://github.com/spotify/docker-maven-plugin) nhưng mọi thứ không thực sự làm việc ra ngoài. Lúc đầu, tôi nhận được ngoại lệ này:Docker maven plugin ClientProtocolException (Windows 10 sử dụng Docker Toolbox)

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

Tôi phát hiện ra rằng tôi phải tạo một công cụ. biến để sửa lỗi này (https://github.com/spotify/docker-maven-plugin/issues/135):

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

docker_host

Vì vậy, sau khi cài đặt env đó. biến Tôi tiếp tục nhận được ClientProtocolException này:

[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 

Tôi không biết làm cách nào để khắc phục điều này, mọi đầu vào sẽ được đánh giá cao.

Trả lời

4

Bạn phải cấu hình cổng chuyển tiếp VirtualBox với chủ nhà nghe trên cổng 2375:

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

guestssh là tên của cổng chuyển tiếp, bạn có thể chọn tên.

nếu VBoxManage không nhận ra, bạn có thể thay thế nó bằng đường dẫn đầy đủ:

"pathVirtualBox \ VBoxManage.exe"

Và sau nếu bạn có một vấn đề như "Các máy chủ thất bại trong việc đáp ứng với một phản ứng HTTP hợp lệ" copy các file certs từ
"% USER% .docker \ máy \ certs"
để
"% USER% .docker"
nguyên nhân Docker-maven-plugin đọc e này iles trong "% USER% .docker" (không sao chép chứng chỉ thư mục, chỉ các tệp).

Tôi nghĩ rằng chúng tôi có thể ghi đè thuộc tính maven để thay thế cổng 2375 và đường dẫn certs, nhưng tôi vẫn không tìm thấy nó.

+0

Thật tệ, tôi không thể đưa ra câu trả lời này hơn upvotes. Đã có cổng chuyển tiếp được định cấu hình trước khi tìm câu trả lời này, nhưng vẫn đang vật lộn với "_Không thể phản hồi với một phản hồi HTTP hợp lệ". Sau khi sao chép chứng chỉ như được đề xuất trong câu trả lời này, mọi thứ bắt đầu hoạt động như mong đợi. Cảm ơn nhiều! – jigga

3

cố định này bằng cách:

 <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> 

quan trọng là hai thẻ này:

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

Tôi đang sử dụng một dockerfile, mà con đường bạn phải xác định với thẻ này:

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

Bây giờ bạn có thể xây dựng lọ và tạo hình ảnh docker qua:

mvn gói Docker: xây dựng

0

Docker máy env mặc định

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 
Các vấn đề liên quan