bounty将在6天后过期。回答此问题可获得+50声望奖励。Rasbypy希望奖励现有答案。
我目前正在创建一个使用MongoDB数据库的Java程序,并将连接信息存储在一个属性文件中。
但是我的项目在GitHub上是开源的,我不能在属性文件中存储连接信息。
所以我想问你是否有可能给予从docker运行的登录信息。
示例:docker run registry/image -args db.password=psw db.username=user
我在stackoverflow中看到过解决方案,但所有的解决方案都使用Spring特性,但我的项目没有使用Spring框架。
2条答案
按热度按时间6jjcrrmo1#
对此,我们有多种解决方案:
秘密 Docker
使用属性语法创建文件:
使用此文件在您的Docker中创建一个 Docker secret:
并在java程序中将其与java库docker-secrets一起使用:
更多的例子,看看here。
环境变量
使用
-e
参数设置Docker中的环境变量:并在java程序中使用
System::getenv
的这些变量:VM参数
为 docker run 命令给予 *VM参数 *:
并在java程序中使用
System::getProperty
的这些变量:程序参数
将参数赋予Docker运行命令:
并在Java程序中将这些参数与 main 方法一起使用:
为了更好地处理参数,可以使用Apache的commons-cli java库或a another library。
r8uurelv2#
如果您在AWS上托管此应用程序,则可以选择使用Secrets Manager,它具有Spring -How to integrate AWS Secret Manager with Spring Boot Application的集成启动项目