を構築します。このDockerfileでキャッシュジャーの依存関係は、私がこのDockerfileからドッカーイメージを構築しています
FROM maven:3.3.3-jdk-8
MAINTAINER Mickael BARON
ADD pom.xml /work/pom.xml
WORKDIR /work
RUN mvn dependency:go-offline --fail-never
ADD ["src", "/work/src"]
RUN ["mvn", "package"]
を、私は私のJavaプロジェクトをパッケージ化する前に、依存関係をダウンロードするには強制します。したがって、srcディレクトリからファイルを変更するたびに依存関係を再ダウンロードする必要はありません。
しかし、この問題はMaven(ベースイメージ)のバージョンによって異なります。実際、依存関係はダウンロードされますが、コンテナの〜/ .m2ディレクトリには保存されません。空っぽです。したがって、いくつかのソースファイルを変更すると、すべての依存関係がredownloadされます。
しかし、私がMavenのバージョンをベースイメージ(例えばFROM maven:3.2.5-jdk-8
)から変更すると、それは動作することに気付きました。
非常に奇妙なのですか?
は '.m2'ボリュームせずに以前のバージョンを利用し始め、それが –
に動作します。ここ' VOLUME'命令がどのように機能するかについて、様々な人々の苦情を追跡する問題だ:https://github.com/docker/docker/issues/3639#issuecomment-229490630 – sirlatrom