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

时间:2017-07-18 13:57:20

标签: docker boot2docker

我有一个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"]` 

如何解决此错误?

2 个答案:

答案 0 :(得分:0)

我认为你需要一个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服务器,部署了war,端口8080从容器映射到docker主机。我希望它有所帮助。

答案 1 :(得分:0)

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

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

构建docker映像已绑定到maven package 阶段,这意味着在我触发docker映像构建时,jar文件本身的构建尚未完成。一旦我将执行阶段更新为 package 之后的任何内容,例如验证或安装,问题就解决了。