2016-11-03 6 views
1

Dockerにまだ新しく、Jetty Webサービスをコンテナ内で実行しようとしています。 これは私がプロジェクトのすべての依存関係をインストールし、ソースからの各モジュールのjarファイルを構築するためにmaven installを指定ドッキングウィンドウのビルド時にDocker:ビルド段階でのみMaven依存関係をインストールしますか?

レシピ

FROM maven:3.3-jdk-8-alpine 

# Install packages 
# To find packages to install see - https://pkgs.alpinelinux.org/packages 
RUN apk add --no-cache curl tar bash wget apache-ant 
RUN apk info 

# Do any Maven configuration 
ENV MAVEN_HOME /usr/share/maven 
VOLUME "$USER_HOME_DIR/.m2" 
ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2" 


# Copy over project source files to the /tmp folder 
COPY . /tmp/project 
WORKDIR /tmp/project 

# Preinstall any Maven depencencies 
RUN mvn install -pl '!deb' -DskipTests 

# Default command when running the docker image, can be overriden 
CMD cd webapp/ && mvn jetty:run 

た瞬間に私のドッキングウィンドウのファイルです。

は、ドッキングウィンドウコンテナを実行したときしかし、それはまだすべての依存関係を再インストールしようとすると、次に失敗し、それは私のapi.jarのファイルを見つけることができないので、

マイプロジェクトの構造はとても

プロジェクト構造のようなものです サービス

  • API
  • libに
  • Webアプリケーション
  • のpom.xml

エラー

は、以下の成果物は解決できませんでした: com.foo.service:サービスAPI:瓶:1.14-SNAPSHOT

コンテナの外で同じ手順を実行すると問題なく動作し、突堤サービスが正常に開始されます。任意のアイデアを修正する方法?

+0

[ドッカービルドのすべてのMavenの依存関係をダウンロードしない](http://stackoverflow.com/questions/38293073/do-not-downloadの可能性のある重複-all-maven-dependencies-on-a-docker-build) – nwinkler

+0

また興味があるかもしれません:http://stackoverflow.com/questions/39977955/how-to-mount-docker-volume-into-my-docker-project -using-compose – nwinkler

+0

Dockerビルド中に依存関係をダウンロードしたいので便利ではありませんが、Docker実行時に同じプロセスを繰り返す必要はありません – kaleeway

答えて

3

SNAPSHOT依存関係は、Mavenによって定期的に更新がチェックされます。デフォルトでは毎日更新されます。しかし、Mavenのsettings.xmlでこれを無効にすることができます。類似した(逆の)ケースの回答はhttps://stackoverflow.com/a/3942048/2235015を参照し、http://maven.apache.org/ref/3.2.2/maven-settings/settings.htmlupdatePolicyを検索)を参照してください。あなたのsettings.xmlに設定

例リポジトリ:

<repository> 
    <id>snapshots</id> 
    <url>http://host/nexus/repos/snapshots</url> 
    <snapshots> 
     <updatePolicy>never</updatePolicy> 
    </snapshots> 
    <releases> 
     <updatePolicy>never</updatePolicy> 
    </releases> 
</repository> 
関連する問題