如何使用docker run命令重写application.yml中的spring属性来启动spring应用程序?

4ngedf3f  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(358)

我有一个停靠的spring引导应用程序,其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\u connection\u timeout。
这个属性如何Map到docker命令中的env变量?

nszi6y05

nszi6y051#

您可以依赖SpringBoot的宽松绑定—它的一个特性是将环境变量Map到配置属性。
在您的情况下,您可以使用:

... -e RESTTEMPLATE_CONNECTIONTIMEOUT=5000 -e RESTTEMPLATE_READTIMEOUT=5000 ...

相关问题