无法在app.jar中运行docker镜像 - 没有主要清单属性

时间:2015-06-26 17:58:38

标签: java maven docker

无法运行构建的docker镜像。当我使用命令

运行时
docker run -p 8080:8080 -t {image prefix name}/{image name}

我收到了一条消息"no main manifest attribute, in app.jar"

使用docker-maven-plugin并尝试将maven-assembly-plugin与主类明确调出。

docker version Boot2Docker 1.7.0

2 个答案:

答案 0 :(得分:0)

Docker 镜像中 jar 文件中的 manifest 不包含您期望的内容,导致使用 java -jar ... 运行时无法启动

我建议您先在本地调试您的程序:

  • MANIFEST.MF 文件是否存在?
  • 当您像您一样调用 java 时,它是否位于 JVM 预期的确切位置?
  • MANIFEST.MF 文件中是否存在“Main-Class: classname”这一行?
  • 类名是否与您要调用的类的名称完全相同?
  • MANIFEST.MF 中给出的类路径是否如您所愿?
  • 要调用的类是否存在于该类路径中?

与朋友一起在 https://docs.oracle.com/javase/tutorial/deployment/jar/appman.html 中的 Oracle 官方文档中了解更多详细信息。

答案 1 :(得分:-1)

将此插件添加到您的pom.xml会有所帮助:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>1.2.5.RELEASE</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
     </plugin>
</build>