Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 运行基本docker映像的主类_Java_Spring Boot_Docker - Fatal编程技术网

Java 运行基本docker映像的主类

Java 运行基本docker映像的主类,java,spring-boot,docker,Java,Spring Boot,Docker,我有一个spring引导应用程序,它包含一个主类。我有如下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 FROM Docker1:0.0.1

我有一个spring引导应用程序,它包含一个主类。我有如下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
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
我正在使用此Docker文件创建Docker映像。让我们考虑一下这个DOCKER文件是DOCK1../P> 我有另一个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
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映像时,我得到一个错误“no main manifest attribute,in/app.jar”。您可以通过运行第二个Docker映像来帮助我运行Docker1的主类吗?

所以您想从target/base-application.jar文件运行主类。Docker2中的下一行将base-application.jar替换为child-application.jar

ADD target/child-application.jar app.jar
要解决此问题,您可以将第二个Docker文件修改为:

FROM Docker1:0.0.1
EXPOSE 8443
ADD target/child-application.jar child-application.jar
ENV JAVA_OPTS=""
ENTRYPOINT exec java $JAVA_OPTS -Dspring.profiles.active=dev -jar /app.jar

你好您是否尝试过与的相关解决方案?在第二幅图中,
/app.jar
是第二阶段的jar文件,正如您所说,它没有主类。第一阶段的jar文件被第二阶段的
ADD
指令覆盖。@SandroAthaide,我已经完成了该链接上给出的更改。我唯一缺少的部分就是答案。