Docker无法运行Java应用程序

sme*_*eeb 8 java docker

我有以下项目目录结构:

myapp/
    grails-app/ (its a grails app, derrrr)
    target/
        myapp.jar (built by grails)
    myapp.yml
Run Code Online (Sandbox Code Playgroud)

... 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"]
Run Code Online (Sandbox Code Playgroud)

然后我用它构建图像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.
Run Code Online (Sandbox Code Playgroud)

知道这里可能出现什么问题,以及我需要做些什么来解决这个问题或排除故障?

eis*_*eis 14

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

CMD ["java", "-jar", "myapp.jar", "myapp.yml"]
Run Code Online (Sandbox Code Playgroud)