设置Dockervariables

我正试图获得设置在Docker容器中的一些环境variables。

以下工作正常

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

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

使用docker运行-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 

Dockerfile中的ENV命令在构build时执行,而docker docker run-e标志当然是运行时参数。 build-time参数无法对传入的运行时参数进行任何处理,因此您必须传递两个环境variables才能获得所需的结果。

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