Sto costruendo un'immagine Docker da questo Dockerfile:caching dipendenze Jar per Maven a base di Docker costruisce
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"]
Con questo Dockerfile, forzo per scaricare le dipendenze prima del confezionamento mio progetto Java. Quindi, non devo scaricare di nuovo le dipendenze ogni volta che ho cambiato un file dalla mia directory src.
Ma, c'è un problema e questo problema dipende dalla versione di Maven (immagine di base). In effetti, le dipendenze vengono scaricate ma non vengono mantenute nella directory ~/.m2 del contenitore. È vuoto. Quindi, quando cambio qualche file sorgente, tutte le dipendenze vengono riscaricate.
Tuttavia, ho notato che se cambio la versione di Maven dall'immagine di base (ad esempio FROM maven:3.2.5-jdk-8
), funziona.
Molto strano, non è vero?
iniziato a utilizzare una versione precedente, senza il volume '.m2' e funziona –
Ecco un problema di monitoraggio denunce di varie persone su come funziona l'istruzione' volumico: https://github.com/docker/docker/issues/3639 # issuecomment-229490630 – sirlatrom