【发布时间】:2017-12-08 14:02:10
【问题描述】:
在 dockerizing 我的 play web 应用程序之前,我能够在运行时执行以下操作:
Joes-Macbook:project-1 joe$ sbt -Dconfig.env=dev run
我可以在 config.env 参数中使用以下 dev、qa、prod 之一,我的应用程序将相应地使用相应的 application.dev.conf 或 application.qa.conf 运行。
现在我的应用程序是一个 docker 容器,这意味着我需要一种方法来注入我的配置文件。我该怎么办?
我想的一种方法是拥有一个 shell 脚本并将其用作入口点。但不确定这可能如何工作?有什么建议吗?
所以当我这样做时
sbt docker:publishLocal
我得到以下 Dockerfile 生成
FROM anapsix/alpine-java:8_server-jre_unlimited
MAINTAINER Joesan <myemail@email.com>
WORKDIR /opt/docker
ADD opt /opt
RUN ["chown", "-R", "daemon:daemon", "."]
USER daemon
ENTRYPOINT ["sh", "-c", "bin/project-1", "-Denv=$configEnv"]
CMD []
ENV configEnv default
我无法在我的 Scala 应用程序中解析 $configEnv。这就是我运行生成的 docker 映像的方式:
docker run -e "configEnv=crap" --rm --name play-8080 -p 8080:9000 joesan/project-1:1.0-SNAPSHOT
【问题讨论】:
标签: docker playframework sbt