我有一个Spring Boot项目,我想从中构建一个图像并推送到Docker私有注册表。我使用Spring Boot official docs跟踪了Spotify Docker Maven plugin。使用Boot2Docker将映像发布到docker本地实例时,这很有效。
现在我正试图用一个远程私人仓库(一个不安全的仓库)做同样的事情,我正在努力解决它。我已经关注了插件文档,这就是我的配置:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.9</version>
<configuration>
<imageName>service-discovery</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.war</include>
</resource>
</resources>
</configuration>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
<execution>
<id>tag-image</id>
<phase>package</phase>
<goals>
<goal>tag</goal>
</goals>
<configuration>
<image>service-discovery</image>
<newName>develop01.mycompany.com:5000/service-discovery</newName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
我的注册表可以通过http://develop01.mycompany.com:5000
访问,但是docker插件似乎无法找到它。
执行 mvn clean install 抛出:
[错误]无法执行目标com.spotify:docker-maven-plugin:0.4.9:build(buil 关于项目服务发现的d-image:捕获异常:java.util.concurrent.Ex ecutionException:com.spotify.docker.client.shaded.javax.ws.rs.ProcessingExcepti on:org.apache.http.conn.HttpHostConnectException:连接到localhost:2375 [lo calhost / 127.0.0.1,localhost / 0:0:0:0:0:0:0:1]失败:连接被拒绝:连接 t - &gt; [帮助1]
执行 mvn docker:tag -DpushImage 抛出:
[错误]无法执行目标com.spotify:docker-maven-plugin:0.4.9:tag(defaul) 关于项目服务发现的t-cli):目标的参数'image','newName' com.spotify:docker-maven-plugin:0.4.9:标签丢失或无效 - &gt; [帮助1]
所以插件似乎没有将参数识别到图像目标中(实际上,它似乎是在执行 mvn clean install 时尝试连接到本地Docker实例)。
软件:
指向我创建的GitHub issue
的链接更新
我已将DOCKER_HOST环境变量设置为tcp://develop01.mycompany.com:5000
,现在该插件似乎已经选择了它。当我在执行配置中声明服务器名称时,仍然不明白为什么我必须通过环境变量来完成它。总而言之,这就是我现在遇到的错误:
[错误]无法执行目标 com.spotify:docker-maven-plugin:0.4.9:在项目上构建(构建d-image) service-discovery:异常捕获:请求错误:GET http ://develop01.mycompany.com:5000 / version:404:HTTP 404 Not Found - &gt; [帮助1]
实际上,我的注册表的/ version端点返回404.然而,/ v2端点返回一个空的JSON。插件是否试图处理以前的docker版本API?