2017-11-19 10 views
0

私はmaven、spring-boot、およびdockerを使ってWebアプリケーションを作成する方法を学んでいます。私は、このガイドを次のようだ:私は、ローカルホストは、「こんにちはドッカー世界を」と言うことのようなMavenプロジェクトをビルドするために管理Windowsでmavenとspring-bootを使ってDocker-Imageを構築する

https://spring.io/guides/gs/spring-boot-docker/

次に、Dockerfileをコピーして、追加のプロパティとプラグインを追加しました。

<properties> 
    <java.version>1.8</java.version> 
    <docker.image.prefix>springio</docker.image.prefix> 
</properties> 

...

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
     <plugin> 
      <groupId>com.spotify</groupId> 
      <artifactId>dockerfile-maven-plugin</artifactId> 
      <version>1.3.6</version> 
      <configuration> 
       <repository>${docker.image.prefix}/${project.artifactId}</repository> 
     <buildArgs> 
      <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> 
     </buildArgs> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

私はエラーを受け取ったMavenのラッパーを追加するmvn -N io.takeri:maven:wrapperを実行: Error resolving version for plugin 'io.takeri:maven from the repositories[...]: Plugin not found in any plugin repository -> [Help 1]

上記のコマンドは、既にドッキングウィンドウなく、異なる試み(上働いたように)ヘルプ1リンクを確認しました

https://cwiki.apache.org//confluence/display/maven/pluginresolutionexception

と同じplugin-repositoryを他のプロジェクトと同じようにpom.xmlに追加しました。

これは不合理であることが判明しました。

が長いエラー・トレース 続いMojoExecutionException

error: Failed to execute goal com.spotify:dockerfile-maven-plugin:1.3.6:build  
(default.cli) on project ...: Could not build image: 
java.util.concurrent.ExecutionException: 
com.spotify.docker.client.shader.javax.ws.rs.ProcessingException: 
org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375  
[localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: 
connect 

どのように私はこの問題を解決することができますを与える:ラッパーせずにプロジェクトを実行する

(ビルドMVN dockerfileをインストールしますか)?

注1:私はMavenとSpring-Boot AND DockerとStackoverflowを初めて使用しています。どうすればこの投稿を改善し、それらについてもっと知ることができるか教えてください。

注2:私は、私はあなたがを参照してくださいレポジトリのだろうかWindowsの10を実行している、およびWindows用の仮想ツールボックスを使用して計画され、成功しhttps://docs.docker.com/get-started/part2/

答えて

0

このガイドを実行しますか? takariプラグインとspotifyプラグインの両方が中央のMavenで利用できるので、あなたのPOMにリポジトリを設定する必要はありません。または、それらをsettings.xmlに追加しましたか?単にあなたのプロジェクトからリポジトリを削除しようと思いますか?

Mavenは依存関係とプラグインを区別します。したがって、リポジトリとpluginRepositoriesの両方を意味するソース(リポジトリをダウンロードするリポジトリ)があります。今日、企業はネクサスやアーティファクトのようなミラー/プロキシを使用するため、違いは直接目に見えるものではありません。ミラーを設定し、すべてのリポジトリをポイントするだけです。

プラグインを使用するには、そのプラグインを含むpluginRepositoryが設定されている必要があります。 settings.xmlドキュメントを参照してください。 あなたが必要とするのは、Mavenの中央にあるので、デフォルトの設定はもはや機能しません。したがって、すべてのリポジトリをpom.xmlまたはsettings.xmlから削除してください。

dockerエラーは、mavenやプラグインに関係していないようですが、単にドッカーホストと通信できません。おそらくポートが間違っているか、プラグインと互換性のないドッカーバージョンを実行しているか、実行されていませんでしたか? Docker for Windowsの場合、expose the daemon without TLSが必要な場合があります。

これは何かの助けを借りています。

+0

ありがとうございます。残念ながら、私はこれにかなり新しいので、私はそれをすべて理解していませんでした。まず第一にsettings.xmlを使用せず、第二にリポジトリを全く参照しないプロジェクトでもうまくいきませんでした。エラーメッセージに指定されている確認済みのリポジトリは次のとおりです。[ローカル(C:\ Users \ USERNAME \ .m2 \ repository)、中央(https://repo.maven.apache.org/maven2)] – TheAnonym

+0

第2部:I Dockerクイックスタートターミナルを使ってdockerfileをビルドすることができました./mvnw install dockerfile:Dockerが接続を見つけるために必要なのでしょうか? メイヴンラッパーが自分で追加されていないという明白な理由から、私はガイドの "完全な"バージョンでそれを行いました。 必要に応じて他の方法でラッパーを入手できますか? – TheAnonym

+0

hmm。 mvnとmvnwラッパーの両方で "mvn help:effective-settings"と "mvn help:effective-pom"を試し、結果を比較してください。どこかの設定が異なる場合を除き、同じ動作をする必要があります。 – wemu

0

私は同じ問題がありました。 HttpHostConnectExceptionあなたのマシンでdocker deamonを実行する必要があります。

関連する問題