没有主清单属性,在 app.war 中



我有一个 WAR 文件,我想在 Docker 中部署它,但是当我在构建后使用关联的端口运行它时,我收到此错误:no main manifest attribute, in app.war.

我的 Dockerfile 看起来像这样

FROM java:8                                                                                                                                                             
EXPOSE 8080                                                                                                                                                             
ADD /service.war app.war                                                                                                                                                
ENTRYPOINT ["java","-jar","app.war"]` 

应该怎么做才能解决此错误?

我认为你需要一个tomcat,而不是一个java图像。即使没有 Dockerfile,您也可以尝试。在与 .war 文件相同的目录上启动此命令:

docker run --name myTomcat -p 8080:8080 --rm -i -v $(pwd)/service.war:/usr/local/tomcat/webapps/app.war tomcat

这将启动一个 Tomcat 服务器,其中部署了您的战争,并将端口 8080 从您的容器映射到您的 docker 主机。我希望它有所帮助。

我有类似的问题。我的问题是 fabric8 docker-maven-plugin 中的以下配置:

<execution>
<id>docker-build</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>

构建 docker 镜像绑定到 maven阶段,这意味着当我触发 docker 镜像构建时,构建 jar 文件本身并没有完成。一旦我将执行阶段更新为晚于软件包的任何内容,例如验证或安装,问题就消失了。

相关内容

最新更新