【发布时间】:2020-03-28 03:37:38
【问题描述】:
我有一个包含主类的 Spring Boot 应用程序。我有如下 Docker 文件:
FROM docker.io/openjdk:11-jre-slim
EXPOSE 8082
EXPOSE 8443
ADD target/base-application.jar app.jar
ENV JAVA_OPTS=""
ENTRYPOINT exec java $JAVA_OPTS -Dspring.profiles.active=prod -jar /app.jar
我正在使用这个 Docker 文件创建一个 Docker 映像。我们假设这个 docker 文件是 Docker1。
我有另一个带有 Docker 文件的 Spring Boot 应用程序(没有 Main 类),如下所示:
FROM Docker1:0.0.1
EXPOSE 8443
ADD target/child-application.jar app.jar
ENV JAVA_OPTS=""
ENTRYPOINT exec java $JAVA_OPTS -Dspring.profiles.active=dev -jar /app.jar
我使用 Docker1 作为第二个应用程序的 docker 镜像的基础镜像。当我尝试运行第二个 docker 映像时,出现错误“/app.jar 中没有主清单属性”。你能帮我通过运行第二个 Docker 映像来运行 Docker1 的 Main 类吗?
【问题讨论】:
-
嗨。你试过stackoverflow.com/questions/9689793/…相关的解决方案吗?
-
在第二张图片中,
/app.jar是第二阶段的 jar 文件,正如你所说,它没有主类。第一阶段的 jar 文件被第二阶段的ADD指令覆盖。 -
@SandroAthaide,我已经完成了该链接上给出的更改。我唯一缺少的部分是答案。
标签: java spring-boot docker