我的 Dockerfile:
FROM maven:3.6.1-jdk-12
WORKDIR /app
COPY pom.xml pom.xml
RUN mvn -B dependency:resolve dependency:resolve-plugins
COPY . .
RUN mvn -B package spring-boot:repackage
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","target/my-service-1.0.1.jar"]
我想在重新打包步骤之前下载所有依赖项,这样我就不需要等待下载每个代码更改的依赖项,而只需等待 pom.xml
更改。
但是这不起作用,并且步骤 mvn -B package spring-boot:repackage
始终下载包。
我的pom.xml
相当长,请告诉我那里是否有任何相关信息,我会添加它。
最佳答案
我终于成功地使用这个 Dockerfile 并添加 go-offline-maven-plugin 来分割我的依赖步骤。 .
FROM maven:3.6.1-jdk-12
WORKDIR /app
COPY pom.xml pom.xml
RUN mvn de.qaware.maven:go-offline-maven-plugin:resolve-dependencies
RUN find /root/.m2 -type f -name '_*.repositories' -delete
COPY . .
RUN mvn -o package spring-boot:repackage
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","target/my-service-1.0.1.jar"]
关于java - Dockerfile 中的打包步骤是下载依赖项,尽管前面有一个步骤来解决依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57942534/