Я пытаюсь использовать докер для автоматизации сборки maven. Проект, который я хочу построить, занимает около 20 минут, чтобы загрузить все зависимости, поэтому я попытался создать образ докера, который будет кэшировать эти зависимости, но он, похоже, не сохраняет его. Мой файл докеров
FROM maven:alpine
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
ADD pom.xml /usr/src/app
RUN mvn dependency:go-offline
Изображение строит, и он загружает все. Однако результирующее изображение имеет тот же размер, что и базовый образ maven:alpine
, поэтому он, похоже, не кэшировал зависимости в изображении. Когда я пытаюсь использовать изображение в mvn compile
, он проходит через полные 20 минут перезагрузки всего.
Можно ли создать изображение maven, которое кэширует мои зависимости, чтобы они не загружались каждый раз, когда я использую изображение для выполнения сборки?
Я запускаю следующие команды:
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
Я понимаю, что все, что RUN
делает во время процесса сборки докеров, становится частью результирующего изображения.