生产中的 Play Framework 2.5:"bad root server path"
Play Framework 2.5 in production: "bad root server path"
我想在 Docker 容器内的生产环境中使用 prod.conf 文件。我将其添加到我的 Docker 文件中:
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 文件。
估计没有权限问题。
这是我的完整 Docker 文件:
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
-D
和配置值之间不应有 space。改用这个:
ENTRYPOINT ["bin/myapp", "-Dconfig.resource=prod.conf"]
如果你使用 sbt 插件 "DockerPlugin" 你可以输入
dockerEntrypoint := Seq("")
在您的 build.sbt 文件中。它会导致
ENTRYPOINT [""]
在您的 Dockerfile 中。所以,那么你 运行 docker 你应该在 运行 命令中指定以下 运行 和你的图像
bin/myapp "-Dconfig.resource=prod.conf"
即
docker 运行 YOUR_DOCKER_IMAGE bin/myapp "-Dconfig.resource=prod.conf"
注意-D
上的引号
应使用JAVA_OPTS来避免此类错误。
JAVA_OPTS="-Dconfig.resource=prod.conf" bin/myapp
适用于命令行、systemctl。
我想在 Docker 容器内的生产环境中使用 prod.conf 文件。我将其添加到我的 Docker 文件中:
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 文件。
估计没有权限问题。
这是我的完整 Docker 文件:
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
-D
和配置值之间不应有 space。改用这个:
ENTRYPOINT ["bin/myapp", "-Dconfig.resource=prod.conf"]
如果你使用 sbt 插件 "DockerPlugin" 你可以输入
dockerEntrypoint := Seq("")
在您的 build.sbt 文件中。它会导致
ENTRYPOINT [""]
在您的 Dockerfile 中。所以,那么你 运行 docker 你应该在 运行 命令中指定以下 运行 和你的图像
bin/myapp "-Dconfig.resource=prod.conf"
即
docker 运行 YOUR_DOCKER_IMAGE bin/myapp "-Dconfig.resource=prod.conf"
注意-D
上的引号JAVA_OPTS来避免此类错误。
JAVA_OPTS="-Dconfig.resource=prod.conf" bin/myapp
适用于命令行、systemctl。