设置Docker变量

时间:2015-06-28 02:18:51

标签: docker

我试图在Docker容器中设置一些环境变量。

以下工作正常

ENV CORE_SQL_URL "jdbc:postgresql://db:5432/db"
ENV JAVA_OPTS -DCORE_SQL_URL=${CORE_SQL_URL}

但是,如果我想覆盖CORE_SQL_URL,我怎么能强制更新JAVA_OPTS。

使用docker run -e运行容器“CORE_SQL_URL = jdbc:postgresql:// db:5432 / db2”会产生以下结果

JAVA_OPTS=-DCORE_SQL_URL=jdbc:postgresql://db:5432/db
CORE_SQL_URL=jdbc:postgresql://db:5432/db2

2 个答案:

答案 0 :(得分:5)

Dockerfile中的ENV命令在构建时执行,而-edocker run的标志当然是运行时参数。构建时参数无法对您传入的运行时参数执行任何操作,因此您必须传入两个环境变量才能获得所需的结果。

答案 1 :(得分:0)

我最终只是在启动我的java应用程序之前在我的ENTRYPOINT调用的shell脚本中设置了JAVA_OPTS。