Play Framework 2.5正在制作中:"糟糕的根服务器路径"

时间:2017-04-18 09:35:31

标签: docker playframework sbt alpine

我想在Docker容器中的生产中使用prod.conf文件。我把它添加到我的Dockerfile:

ENTRYPOINT ["bin/myapp", "-D", "config.resource=prod.conf"]

但我收到了这个错误:

Bad root server path: /opt/docker/-D

当我尝试以root身份手动运行命令时,我收到同样的错误

/opt/docker/bin/myapp -D config.resource=prod.conf

如果我跑

/opt/docker/bin/myapp

它可以使用默认的application.conf文件。

我想没有许可问题。

这是我的完整Dockerfile:

FROM openjdk:8u121-alpine
WORKDIR /opt/docker
ADD opt /opt
RUN ["chown", "-R", "daemon:daemon", "."]
EXPOSE 9000
USER daemon
ENTRYPOINT ["bin/myapp", "-D", "config.resource=prod.conf"]
CMD []

修改

我在本地遇到了同样的错误:

activator clean stage
target/universal/stage/bin/myapp -D config.resource=prod.conf
Bad root server path: /home/me/Documents/MyApp-D

3 个答案:

答案 0 :(得分:1)

-D和配置值之间不应有空格。请改用:

ENTRYPOINT ["bin/myapp", "-Dconfig.resource=prod.conf"]

答案 1 :(得分:0)

如果你使用sbt插件“DockerPlugin”,你可以输入

dockerEntrypoint := Seq("")

在build.sbt文件中

。它会导致

ENTRYPOINT [""]
你的Dockerfile中的

。那么,你运行docker和你应该在运行命令中指定的图像

bin/myapp "-Dconfig.resource=prod.conf"

docker run YOUR_DOCKER_IMAGE bin / myapp“-Dconfig.resource = prod.conf”

注意-D

上的引号

答案 2 :(得分:0)

应使用JAVA_OPTS以避免此类错误。

JAVA_OPTS="-Dconfig.resource=prod.conf" bin/myapp

使用命令行systemctl进行搜索。