3

[错误] 无法在项目 Bookstore 上执行目标 com.spotify:docker-maven-plugin:1.0.0:build(默认):捕获异常:java.util.concurrent.ExecutionException:com.spotify.docker.client.shaded。 javax.ws.rs.ProcessingException:org.apache.http.conn.HttpHostConnectException:连接到 localhost:2375 [localhost/127.0.0.1] 失败:连接被拒绝

为什么这个异常不断发生,我该如何解决它,我正在从 war 文件构建 docker 映像。

pom.xml

<modelVersion>4.0.0</modelVersion>
<groupId>net.codejava.javaee.bookstore</groupId>
<artifactId>Bookstore</artifactId>
<version>1.2.1</version>
<packaging>war</packaging>

 <properties>
 <docker.image.prefix>alesblaze</docker.image.prefix>
 </properties>

 <dependencies>
     <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
         <scope>provided</scope>
     </dependency>
     <dependency>
         <groupId>javax.servlet.jsp</groupId>
         <artifactId>javax.servlet.jsp-api</artifactId>
         <version>2.3.1</version>
         <scope>provided</scope>
     </dependency>
     <dependency>
         <groupId>jstl</groupId>
         <artifactId>jstl</artifactId>
         <version>1.2</version>
     </dependency>
     <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>5.1.30</version>
     </dependency>
 </dependencies>  

<build>
 <sourceDirectory>src</sourceDirectory>
 <plugins>
   <plugin>
     <artifactId>maven-compiler-plugin</artifactId>
     <version>3.5.1</version>
     <configuration>
       <source>1.8</source>
       <target>1.8</target>
     </configuration>
   </plugin>
   <plugin>
     <artifactId>maven-war-plugin</artifactId>
     <version>2.6</version>
     <configuration>
     <finalName>BookStore</finalName>
       <warSourceDirectory>WebContent</warSourceDirectory>
       <failOnMissingWebXml>false</failOnMissingWebXml>
     </configuration>
   </plugin>

   <plugin>
 <groupId>com.spotify</groupId>
 <artifactId>docker-maven-plugin</artifactId>
 <version>1.0.0</version>
 <configuration>
 <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
 <dockerDirectory>Docker</dockerDirectory>
 <dockerHost>https://localhost:3000</dockerHost>
 <forceTags>true</forceTags>
 <imageTags>
 <imageTag>${project.version}</imageTag>
 <imageTag>latest</imageTag>
 </imageTags>
 <serverId>docker-hub</serverId>
 <registryUrl>https://hub.docker.com/</registryUrl>
 <resources>
 <resource>
 <targetPath>/</targetPath>
 <directory>${project.build.directory}</directory>
 <include>${project.build.finalName}.war</include>
 </resource>
 </resources>
 </configuration>
 <executions>
 <execution>
 <phase>package</phase>
 <goals>
 <goal>build</goal>
 </goals>
 </execution>
 </executions>
</plugin>

 </plugins>
</build>
</project>

DockerFile


DockerFile
``` FROM tomcat:8.5-alpine
VOLUEME /volume/mysql/
COPY /target/BookStore.war /usr/local/tomcat/webapps/app.war
RUN sh -c 'touch /usr/local/tomcat/webapps/app.war'
d
ENTRYPOINT ["sh", "-c" , "java -Djava.security.edg=file:/dev/./urandom -jar /usr/local/tomcat/webapps/app.war] ```

更新

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:1.0.0:build (default) on project Bookstore: Exception caught: Timeout: GET https://localhost:2375/version: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: org.apache.http.conn.ConnectTimeoutException: Connect to localhost:2375 [localhost/127.0.0.1] failed: connect timed out 

现在关闭防火墙后出现此错误,该怎么办?

4

2 回答 2

14
  1. 将 DOCKER_HOST 设置为环境变量 tcp://localhost:2375

  2. 根据附加的图像更改 docker 桌面设置。

  3. 重新启动 docker 桌面

在此处输入图像描述

于 2020-08-18T00:17:41.347 回答
4

您应该设置DOCKER_HOST环境变量。从文档

默认情况下,插件将尝试连接到 localhost:2375 上的 docker。设置 DOCKER_HOST 环境变量以连接其他地方。

另请参阅如何定义自定义 docker 主机 url?

例如在 Windows 上:

set DOCKER_HOST=tcp://localhost:3000& mvn clean install

本地主机上的 Docker 引擎必须配置为接受端口 3000 上的传入连接

于 2019-09-20T12:14:40.407 回答