Docker无法运行Java应用程序

我有以下项目目录结构:

myapp/ grails-app/ (its a grails app, derrrr) target/ myapp.jar (built by grails) myapp.yml 

…其中target/myapp.jar是可执行JAR(实际上是一个运行embedded式Jetty的独立Web应用程序),以及myapp.yml是启动时需要的configuration文件。

这是我的Dockerfile

 FROM java:8 MAINTAINER My Name <myname@example.com> WORKDIR / ADD ./target/myapp.jar /myapp.jar ADD ./myapp.yml /myapp.yml EXPOSE 8080 CMD ["java", "-jar myapp.jar myapp.yml"] 

然后我用docker build -t myapp .构build图像docker build -t myapp . 。 它build立成功,然后尝试通过docker run myapp运行图像,并得到:

 Unrecognized option: -jar myapp.jar myapp.yml Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 

任何想法在这里可能会出错,我需要做什么来解决这个问题或排除故障?

您将所有参数作为单个参数给出,但它们是不同的。 你应该做

 CMD ["java", "-jar", "myapp.jar", "myapp.yml"]