Я работал над правильным Dockerfile для многомодульной сборки на основе maven. Цель состоит в том, чтобы создать образ для одного подмодуля микросервисной архитектуры с пружинной загрузкой.
Конечно, я мог бы сначала добавить все помы, разрешить зависимости, а затем добавить исходный код в сборку. Я думаю, что это было бы непрактично, так как
1) Вам нужно будет изменить все файлы докеров для каждой добавленной службы
2) Все зависимости загружаются повторно, если поменяется pom
Поскольку монтирование тома, чтобы сохранить локальный репозиторий, на этапе сборки невозможно (afaik), я остаюсь ошеломленным, как управлять этим, не сходя с ума.
[Dockerfile]
#Build the JAR with maven
FROM maven:3.6.3-jdk-11 AS build
COPY . /app
RUN mvn -f /app/pom.xml clean package #/root/.m2 should be the default location
#Second stage, in order to minimize the image footprint
FROM gcr.io/distroless/java:11
COPY --from=build /app/service1/target/service1.jar /app/service1.jar
ENTRYPOINT ["java","-jar","/app/service1.jar"]
Может, я сошел с ума и просто не вижу этого.
Спасибо за помощь!
https://github.com/moby/moby/issues/14080