Вы должны смонтировать содержимое вашего проекта в образ докера и $HOME/.m2/
в образ вместо того, чтобы копировать все в образ и создать новый образ.
$PWD
- это локальныйкаталог, в котором находится файл pom.xml
, а каталог src
существует ...
docker run -it --rm \
-v "$PWD":/usr/src/mymaven \ (1)
-v "$HOME/.m2":/root/.m2 \ (2)
-v "$PWD/target:/usr/src/mymaven/target" \ (3)
-w /usr/src/mymaven \ (4)
maven:3.5-jdk-8-alpine \ (5)
mvn clean package
- определяет местоположение вашего рабочего каталога, в котором находится
pom.xml
. - определяет местоположение, в котором вы разместили локальный кеш.
- определяет целевой каталог для сопоставления его с образом по указанному пути
- определяет рабочий каталог.
- определяет имя изображения, которое будет использоваться.
Так что вам не нужно создавать новое изображение, чтобы создавать свои вещи с помощью Maven.Просто запустите существующий образ с помощью следующей команды:
docker run -it --rm \
-v "$PWD":/usr/src/mymaven \
-v "$HOME/.m2":/root/.m2 \
-v "$PWD/target:/usr/src/mymaven/target" \
-w /usr/src/mymaven \
maven:3.5-jdk-8-alpine mvn clean package