4

目前,我在 datasource.properties 文件中有以下内容以本地连接到数据源...

//datasource.properties
spring.datasource.password=${DB_PASSWORD}

这对本地很有用,但现在我正在尝试创建一个 docker 映像。为了存储数据,我宁愿使用秘密而不是环境变量(或者甚至是秘密,然后是未找到的环境变量)。我目前在我的本地 docker 映像中设置了秘密,但我不知道如何使用代码而不是属性来设置 spring.datasource.password。

如何使用 docker 密码设置“spring.datasource.password”?

4

1 回答 1

2

借助EnvironmentPostProcessor 接口的自定义实现,“spring.datasource.password”可以在 application.yml 中设置如下

   spring:
     datasource:
       password: ${docker-secret-my-db-passwd}

容器内的 docker 机密绑定显示为 /run/secrets 文件夹下的文件。EnvironmentPostProcessor 实现将这些文件加载​​为环境属性。

Spring boot 参考资料 - Encrypted Properties中也介绍了这个想法

于 2019-04-06T19:42:49.950 回答