2016-11-07 4 views
1

私のローカルのmavenを使用してビルドしたドッカーイメージをDocker Cloud/Docker Hubの私のパブリック/プライベートリポジトリにプッシュしようとしています。私のpom.xmlのサンプル設定であるPush.Belowを試しているときに、インデックスレスポンスにエンドポイントが含まれていませんでした。Mavenをプライベートレポジトリに使用してDocker Imageをプッシュする際の認証の問題を解決する方法

ここではどの設定が欠落しているかわかりません。

<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.11</version> 
      <configuration> 
       <imageName>${docker.image.prefix}/dockercloudappstation</imageName> 
       <dockerDirectory>src/main/docker</dockerDirectory> 
       <!-- <dockerHost>tcp://192.168.99.100:2376</dockerHost> --> 
       <serverId>docker-hub</serverId> 
       <!-- <registryUrl>https://hub.docker.com/</registryUrl> --> 
       <resources> 
        <resource> 
         <!-- <targetPath>/</targetPath> --> 
         <directory>${project.build.directory}</directory> 
         <include>${project.build.finalName}.jar</include> 
        </resource> 
       </resources> 
      </configuration> 
      <executions> 
       <execution> 
        <id>build-image</id> 
        <phase>package</phase> 
        <goals> 
        <goal>build</goal> 
        </goals> 
       </execution> 

       <execution> 
        <id>tag-image-version</id> 
        <phase>package</phase> 
        <goals> 
         <goal>tag</goal> 
        </goals> 
        <configuration> 
         <!-- <image>${docker.image.prefix}/${project.artifactId}</image> --> 
         <image>${docker.image.prefix}/dockercloudappstation</image> 
         <newName>hub.docker.com/${docker.image.prefix}/dockercloudappstation</newName> 
         <!-- <serverId>docker-hub</serverId> --> 
         <pushImage>true</pushImage> 
        </configuration> 
       </execution> 
       <execution> 
        <id>tag-image-latest</id> 
        <phase>package</phase> 
        <goals> 
         <goal>tag</goal> 
        </goals> 
        <configuration> 
         <!-- <image>${docker.image.prefix}/${project.artifactId}</image> --> 
         <image>${docker.image.prefix}/dockercloudappstation</image> 
         <newName>hub.docker.com/${docker.image.prefix}/dockercloudappstation:latest</newName> 
         <pushImage>true</pushImage> 
        </configuration> 
       </execution> 

       <execution> 
        <id>push-image</id> 
        <phase>package</phase> 
        <goals> 
        <goal>push</goal> 
        </goals> 
        <configuration> 
        <serverId>docker-hub</serverId> 
        <!-- <imageName>${docker.image.prefix}/dockercloudappstation</imageName> --> 
        </configuration> 
       </execution> 

エラーログ:

 at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: org.apache.maven.plugin.MojoExecutionException: Exception caught 
    at com.spotify.docker.AbstractDockerMojo.execute(AbstractDockerMojo.java:130) 
    at com.spotify.docker.TagMojo.execute(TagMojo.java:44) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) 
    ... 20 more 
Caused by: com.spotify.docker.client.exceptions.DockerException: Index response didn't contain any endpoints 
    at com.spotify.docker.client.AnsiProgressHandler.progress(AnsiProgressHandler.java:52) 
    at com.spotify.docker.Utils$DigestExtractingProgressHandler.progress(Utils.java:150) 
    at com.spotify.docker.client.ProgressStream.tail(ProgressStream.java:77) 
    at com.spotify.docker.client.DefaultDockerClient.push(DefaultDockerClient.java:1040) 
    at com.spotify.docker.Utils.pushImage(Utils.java:83) 
    at com.spotify.docker.TagMojo.execute(TagMojo.java:119) 
    at com.spotify.docker.AbstractDockerMojo.execute(AbstractDockerMojo.java:128) 

答えて

2

オープンsettings.xmlあなたのMavenの設定の構成のため、あなたの資格情報を使用して、ここのサーバを追加します。この設定があるため、セキュリティ上の問題のpom.xmlにすべきではない(と私の知る限りすることはできません)

<servers> 
    <server> 
    <id>docker-hub</id> 
    <username>username</username> 
    <password>password</password> 
    </server> 
</servers> 

:通常、このファイルは.m2フォルダにありますので、ここのようなものを追加します。

さらに安全なオプションに興味がある場合は、パスワードhereのように暗号化することができます。


あなたはあまりにも乱雑ですpom.xml。最も単純なpom.xmlの設定から始めましょう。 springio exampleをチェックし、レポにspringioプロパティを変更してください。

<properties> 
    <docker.image.prefix>springio</docker.image.prefix> 
</properties> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>com.spotify</groupId> 
      <artifactId>docker-maven-plugin</artifactId> 
      <version>0.4.11</version> 
      <configuration> 
       <imageName>${docker.image.prefix}/${project.artifactId}</imageName> 
       <dockerDirectory>src/main/docker</dockerDirectory> 
       <serverId>docker-hub</serverId> 
<!-- <registryUrl></registryUrl> is optional and defaults to https://index.docker.io/v1/ in the Spotify docker-client dependency. --> 
       <resources> 
        <resource> 
         <targetPath>/</targetPath> 
         <directory>${project.build.directory}</directory> 
         <include>${project.build.finalName}.jar</include> 
        </resource> 
       </resources> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
+0

私は自分のsetting.xmlにドッカーハブの資格情報を提供しています。しかし今、最後のステップでImを取得しようとしている間にインデックス応答にエンドポイントの例外が含まれていませんでした。 – springbootlearner

+0

'pom.xml'で定義された' registryUrl'は何ですか? – VladoDemcak

+0

これは私の登録URLですhttps://hub.docker.com/ – springbootlearner

関連する問題