Maven débardeur cache dépendances

Je suis en train d'utiliser docker pour automatiser maven construit. Le projet que je veux construire prend près de 20 minutes pour télécharger toutes les dépendances, donc j'ai essayé de construire un docker image qui cache ces dépendances, mais il ne semble pas à l'enregistrer. Mon Dockerfile est

FROM maven:alpine
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
ADD pom.xml /usr/src/app
RUN mvn dependency:go-offline

L'image construit, et il n'télécharger tout. Cependant, l'image résultante est la même taille que la base maven:alpine de l'image, de sorte qu'il ne semble pas avoir mis en cache les dépendances dans l'image. Lorsque j'essaie d'utiliser l'image de mvn compile il va à travers les 20 minutes de télécharger à nouveau le tout.

Est-il possible de construire une maven image que les caches de mes dépendances de sorte qu'ils n'ont pas besoin de télécharger à chaque fois que j'utilise l'image pour effectuer un build?

Je suis en exécutant les commandes suivantes:

docker build -t my-maven .

docker run -it --rm --name my-maven-project -v "$PWD":/usr/src/mymaven -w /usr/src/mymaven my-maven mvn compile

Ma compréhension est que, quelle que soit RUN durant le docker processus de construction devient une partie de l'image qui en résulte.

  • Faire un conteneur de données qui contient le téléchargement des artefacts...Combien de modules construisez-vous? Combien de tests courez-vous? La Cause de 20 minutes de sons très long?
  • Pouvez-vous expliquer ce que vous entendez par conteneur de données? J'ai pensé que je finirais avec une maven image que les données. Ne pas "mvn dependency:allez-hors ligne" enregistrer ces dépendances sur le système de fichiers local?
  • Si vous avez des modifications sur le système de fichiers local, ceux-ci seront jetés si vous redémarrez votre conteneur...
  • Je reçois, mais je ne parle pas d'un conteneur. Je parle du docker processus de construction. Ma compréhension est que l'état du système à la fin de docker construire est une partie de l'image.
  • Vous pouvez considérer ceci: stackoverflow.com/a/49891339/1054322
  • Pourrait être utile: medium.com/pismolabs/...
  • cela fonctionne comme vous vous attendez à ce que la VOLUME déclaration a été supprimé depuis Dec'17 github.com/carlossg/docker-maven/pull/57