Gri*_*ger 4 java docker spring-boot docker-compose
所以我正在制作一个 Spring Boot 应用程序,我应该将其放入 docker 容器中并运行,并且我想使用 docker 文件构建整个映像。
我正在使用这个 dockerFile:
FROM openjdk:8-jdk-alpine
ADD . /analytics-service
WORKDIR /analytics-service
ENTRYPOINT ./mvnw spring-boot:run
Run Code Online (Sandbox Code Playgroud)
当我创建图像时,它只是复制文件,并且只有在我运行它之后,它才开始下载所有 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"]
Run Code Online (Sandbox Code Playgroud)
在运行此命令之前,您需要知道您的 jar 文件是如何命名的。您可以在计算机上的 Docker 外部运行 mvn package 并查看生成的文件名。将其复制到 Dockerfile 中上面的两个位置。
| 归档时间: |
|
| 查看次数: |
4141 次 |
| 最近记录: |