当前位置: 首页 > 知识库问答 >
问题:

运行基本docker映像的主类

艾焱
2023-03-14

我有一个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。

我有另一个Spring Boot应用程序(没有主类),Docker文件如下:

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 1的主类运行第二个Docker镜像吗?

共有1个答案

贡斌
2023-03-14

所以您希望从目标/基础应用程序运行main类。jar文件。Docker2中的下一行替换了基本应用程序。带有子应用程序的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
 类似资料:
  • 我可以在docker上导入此图像,但无法运行。 我所做的: 将图像文件从“.img”格式压缩为“.tar.gz”格式,以便导入docker图像。我使用7-zip工具来转换这个。 我使用这个新文件(.tar.gz)<从本地文件导入了docker图像 试图运行此导入的映像,但失败。 执行的命令: 我对此错误进行了大量搜索,发现为了运行,我们需要指定创建映像时使用的路径(在Dockerfile中),但我

  • 问题内容: 我有一个泊坞窗映像,我想找出它是从哪个映像创建的。当然有多层,但是我想找出最后一张图像(dockerfile中该图像的FROM语句)? 我尝试使用,但无法在其中找到此信息。 我尝试使用以下命令,但它给我一条错误消息 这是我收到的错误消息 问题答案: 您可以使用此答案中建议的方法:https : //stackoverflow.com/a/53841690/3691891 首先,拉: 获

  • 问题内容: 我有一个Docker映像,它是一个node.js应用程序。该应用程序从本地运行的Redis检索一些配置值。因此, 我试图在Docker映像内的同一容器内安装和运行Redis。 如何扩展Docker文件并在其中配置Redis? 到目前为止,Dockerfile如下: 从节点:碳 WORKDIR / app COPY package.json / app 运行npm安装 复制。/ app

  • 我有一个Docker映像,它是一个Node.js应用程序。应用程序从本地运行的Redis检索一些配置值。因此,我试图在Docker映像的同一容器中安装和运行Redis。 我如何扩展Docker文件并在其中配置Redis? 截至目前,Dockerfile如下所示:

  • 我开始使用Docker,我可以说,这是一个伟大的概念。到目前为止一切都很顺利。我在ubuntu(我的主机操作系统)上安装了docker,从存储库中播放图像并制作新图像。 我想制作当前(主机)操作系统的映像。我如何使用docker本身实现这一点?我是docker的新手,所以请忽略我问题中的任何愚蠢的事情,如果有的话。

  • 问题内容: 在上一篇文章中建议创建我自己的Docker映像后,我想将jenkins与ruby一起使用,因此我的dockerfile看起来像 我跑 它可以正确构建,我可以看到图像 所以我想在容器中运行此图像 但我明白了 我期望能够去看看jenkins控制台 我错过了什么吗? 谢谢 问题答案: Dockerfile不能有多个。 这种本质上将两个映像合并在一起的功能无法在单个Dockerfile中完成。