因此,我制作了一个spring boot应用程序,应该放在docker容器中并从中运行,我想使用docker文件构建整个映像
FROM openjdk:8-jdk-alpine
ADD . /analytics-service
WORKDIR /analytics-service
ENTRYPOINT ./mvnw spring-boot:run
当我创建映像时,它只是复制文件,只有在我运行它之后,它才会开始下载所有maven依赖项.
因此,我制作了一个spring boot应用程序,应该放在docker容器中并从中运行,我想使用docker文件构建整个映像
FROM openjdk:8-jdk-alpine
ADD . /analytics-service
WORKDIR /analytics-service
ENTRYPOINT ./mvnw spring-boot:run
当我创建映像时,它只是复制文件,只有在我运行它之后,它才会开始下载所有maven依赖项.
如果我理解正确,你想先下载Maven依赖项,然后将它们与你的应用程序合并成一张图片吗?
如果这是你想要的,那么正确的方法如下:
下面是Dockerfile中的内容:
FROM maven AS builder
WORKDIR /usr/src/analytics
COPY pom.xml .
RUN mvn -B dependency:go-offline
COPY . .
RUN mvn package
FROM openjdk:8-jdk-alpine
WORKDIR /analytics-service
COPY --from=builder /usr/src/analytics/target/YOUR_JAR_FILENAME.jar .
EXPOSE 80
ENTRYPOINT ["java", "-jar", "/analytics-service/YOUR_JAR_FILENAME.jar"]
在运行这个程序之前,您需要知道jar文件的名称.您可以在计算机上的Docker外部运行mvn包,并查看生成的文件名.把它复制到Dockerfile上面的两个地方.