提问人:santhiago017 提问时间:11/8/2023 最后编辑:santhiago017 更新时间:11/8/2023 访问量:42
Spring 没有从 Openshift 获取 env 变量
Spring doesn't get env variable from Openshift
问:
我有 Spring Boot 应用程序,当我向 Git 提交一些更改时,它会自动部署到 Openshift。 我需要外部化数据源配置。我正在尝试使用环境变量作为解决方案。
这是我的application.yaml
...
spring:
datasource:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@10.xxx.xxx.xxx:1521/DBASE
username: ****
password: ****
...
我不能在application.yaml中拥有用户名和密码,因为构建是由Fortify扫描的,Fortify可以识别漏洞。 尝试使用环境变量,我首先在 Windows 中使用环境变量进行了测试。我在 Windows 中添加了这两个环境:
SPRING_DATASOURCE_USERNAME
SPRING_DATASOURCE_PASSWORD
我已将application.yaml更改为此并且工作正常。
...
spring:
datasource:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@10.xxx.xxx.xxx:1521/DBASE
...
我尝试在 Openshift 中将相同的环境添加到 DeploymentConfig,但没有用。Spring 找不到我在 Openshift 中创建的环境变量。
这是我在 Openshift DeploymentConfigs 中的配置:
知道我该如何解决这个问题?
答:
0赞
Huong
11/8/2023
#1
您需要在 的配置中添加环境变量。例如application.yaml
spring:
datasource:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@10.xxx.xxx.xxx:1521/DBASE
username: ${SPRING_DATASOURCE_USERNAME}
password: ${SPRING_DATASOURCE_PASSWORD}
评论
0赞
M. Deinum
11/8/2023
这不应该是必需的,因为 Sprng Boot 将解释环境变量。已经。
评论