2017-01-20 11 views
3

私のローカルWindows 10 ProマシンでDocker for Windows v1.13.0およびdocker-maven-plugin v0.4.13を使用しています。私はを使って自分のプロジェクトを構築し、ドッカー画像を生成しています。ビルドが失敗します。Docker for Windowsおよびdocker-maven-plugin - 「SSLException:認識できないSSLメッセージ、プレーンテキスト接続」エラー

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 25.006 s 
[INFO] Finished at: 2017-01-19T14:48:45-02:00 
[INFO] Final Memory: 68M/619M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default-cli) on project monitoramentoRS: Exception caught: 
java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: javax.net.ssl.SSLException: 
Unrecognized SSL message, plaintext connection? -> [Help 1] 

は、直接コマンドライン(docker build -t ...)にドッキングウィンドウの画像を作成する正常に動作します。 mavenプラグインは、Windows 7のDockerツールボックスとOracle Virtual Boxでうまく動作していました。

したがって、私はdocker-maven-pluginとDocker for Windowsデーモンの間にTLS関連の設定上の問題があると考えています。私はDOCKER_HOST(ポート表示なし、2375、2376)、DOCKER_TLS_VERIFY、およびDOCKER_TLSを使用して、異なるコンフィギュレーションの組み合わせを試しました。また、 "advanced" Docker for Windowsデーモン設定の"tls""tlsverify"属性も試しました。

Docker-MavenプラグインをDocker for Windowsで作成できるようにしたことがありますか?以下は

{ 
    "auths": { 
     "our-corporate-private-docker-registry-address": { 
      "auth": "an-authorization-token" 
     }, 
     "https://index.docker.io/v1/": { 
      "auth": "an-authorization-token" 
     } 
    } 
} 

がドッキングウィンドウ-のmaven-pluginの設定ファイルである:

マイ%HOME%.docker \ config.jsonをファイルにのみauthsコレクションが含まれています。

<plugin> 
    <groupId>com.spotify</groupId> 
    <artifactId>docker-maven-plugin</artifactId> 
    <version>0.4.13</version> 
    <configuration> 
     <useConfigFile>false</useConfigFile> <!-- true yields the same error --> 
     <registryUrl>${docker.private.registry}</registryUrl> 
     <imageName>${docker.private.registry}/myrepo/myimage</imageName> 
     <imageTags> 
      <imageTag>latest</imageTag> 
     </imageTags> 
     <dockerDirectory>${basedir}/docker</dockerDirectory> <!-- Dockerfile location --> 
     <resources> 
      <resource> 
       <targetPath>/</targetPath> 
       <directory>${project.build.directory}</directory>           <include>${project.build.finalName}.${project.packaging}</include> 
      </resource> 
     </resources> 
    </configuration> 
</plugin> 
+1

Windows 10 Proをお使いですか? docker-maven-pluginの設定と%HOME%\。docker \ config.jsonを貼り付けることができますか?私はWindows 10でもそれを使用するときにいくつか問題がありました。 –

+0

@EricHans:はい、それはWin 10 Proです。私は質問にプラグインのconfigとconfig.jsonの内容を追加しました。 –

+0

どのようなクラウドプロバイダーがありますか?ドッカーにサーバー証明書を追加しましたか、またはtlsを無視してログインしましたか? –

答えて

1

ドッキングウィンドウ-のmaven-pluginのとの通信に影響を与える%のホーム%.docker下にいくつかの構成要素があるかもしれません。 %HOME%.dockerフォルダを削除して、ドッカーを再起動してください。その後、

oc login -u user https://url-to-openshift:port --insecure-skip-tls-verify

docker login -u user -p token url-to-private-registry

を実行し、%ホーム%の.dockerを開いて、あなたのファイルはこのようであれば :

{ 
    "auths": { 
     "url-to-private-registry": {} 
    }, 

    "credsStore": "wincred"  
} 

は、credsStoreの一部を除去spotify docker-maven-pluginはそれをサポートしていないからです。

例:

{ 
    "auths": { 
     "url-to-private-registry": {} 
    } 
} 

再度ドッキングウィンドウのログインを実行すると、それは再びトークンを生成し、あなたが任意の認証の問題を持つべきではありません。ログイン後

、あなた%のHOME%.docker \ config.json次のようになります。
{ 
    "auths": { 
     "url-to-private-registry": { 
      "auth:" "token-that-docker-maven-plugin-needs-when-property-useConfigFile-is-true" 
     } 
    } 
} 

は、少なくとも、それは私のために働きました。

+0

%USER%\ dockerを削除すると問題が解決し、docker-maven-pluginで画像を構築できました。 '-DpushImageTag'を追加したとき、実際には「例外が検出されました:認証されていません:認証が必要です」というエラーが表示されました。 "credsStore"要素を削除し、 'docker login'コマンドの後に、" auth "値が自動的に埋められ、' -DpushImageTag'が機能していました。 –

関連する問題