无法使用(Spotify)Docker Maven插件推送到远程仓库

Xtr*_*ica 6 maven docker spring-boot

我有一个Spring Boot项目,我想从该项目构建映像并将其推送到Docker私有注册表。我已经使用Spotify Docker Maven插件来关注Spring Boot的官方文档。使用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>
Run Code Online (Sandbox Code Playgroud)

我的注册表可通过访问http://develop01.mycompany.com:5000,但docker插件似乎无法找到它。

执行mvn全新安装抛出:

[错误]无法在项目服务发现时执行目标com.spotify:docker-maven-plugin:0.4.9:build(构建d映像):捕获的异常: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-> [帮助1]

执行mvn docker:tag -DpushImage抛出:

[错误]在项目服务发现时无法执行目标com.spotify:docker-maven-plugin:0.4.9:tag(默认t-cli):目标com.spotify:docker的参数'image','newName' -maven-plugin:0.4.9:tag丢失或无效-> [帮助1]

因此,该插件似乎无法识别映像目标中的参数(实际上,它看起来像是在执行mvn clean install时尝试连接到本地Docker实例)。

软件:

  • docker版本:服务器:1.11.0
  • docker-maven-plugin版本:0.4.9
  • Maven版本:3.2.3

我创建的GitHub问题的链接


更新资料

我已经将DOCKER_HOST环境变量设置为tcp://develop01.mycompany.com:5000,现在插件似乎可以选择它了。在执行配置中声明服务器名称时,仍然不明白为什么必须通过环境变量来执行此操作。总而言之,这就是我现在遇到的错误:

[错误]无法在项目服务发现上执行目标com.spotify:docker-maven-plugin:0.4.9:build(构建d映像):捕获到异常:请求错误:GET http://develop01.mycompany.com :5000 /版本:404:找不到HTTP 404-> [帮助1]

实际上,我的注册表的/ version端点返回404。但是/ v2端点返回一个空的JSON。插件是否要处理以前的Docker版本的API?