【发布时间】:2021-03-01 18:45:08
【问题描述】:
我有一个 dockerized spring boot 应用程序,其 application.yml 包含以下属性:
rest-template:
connection-timeout: 1000
read-timeout: 1000
现在假设我想在运行 docker run 命令时更新连接超时值。我知道其中一种方法是更新 application.yml 文件:
rest-template:
connection-timeout: ${REST_CONNECTION_TIMEOUT:1000}
read-timeout: ${REST_READ_TIMEOUT:1000}
然后我们可以运行docker run命令如下:
docker container run -d --name test-service -e REST_CONNECTION_TIMOUT=5000 test-service-img
但是如果我想更新它而不必在 application.yml 中使用 REST_CONNECTION_TIMOUT。
这个属性如何映射到 docker 命令中的 env 变量?
【问题讨论】:
-
您可以在命令行上编写自定义运行命令,该命令将更新您的文件,例如sed 如果在启动 Spring Boot 应用程序之前可用。同时,干净的方式将是您在问题中使用 env vars 描述的方式,或者至少覆盖该文件以构建自定义图像。
标签: java spring-boot docker environment-variables application.properties