无法使用(spotify)Docker maven插件

时间:2016-05-12 15:42:22

标签: maven docker spring-boot

我有一个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实例)。

软件:

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

指向我创建的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?

0 个答案:

没有答案