我有以下项目目录结构:
myapp/
grails-app/ (its a grails app, derrrr)
target/
myapp.jar (built by grails)
myapp.yml
...其中target/myapp.jar
是可执行JAR(实际上是运行嵌入式Jetty的自包含Web应用程序),其中myapp.yml
是启动时所需的配置文件。
这是我的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 .
构建图像。它成功构建我然后尝试通过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.
知道这里可能出现什么问题,以及我需要做些什么来解决这个问题或对其进行故障排除?
答案 0 :(得分:14)
您将所有参数作为一个参数提供,但它们是不同的。你应该做
CMD ["java", "-jar", "myapp.jar", "myapp.yml"]