考虑以下docker-compose
文件:
version: "3"
services:
app:
build: src
environment:
POSTGRES_USER=app
POSTGRES_PASSWORD=mysecretpassword
[...]
db:
image: postgres
environment:
POSTGRES_USER=app
POSTGRES_PASSWORD=mysecretpassword
现在,我不想登记mysecretpassword
(即使从理论上讲,攻击者永远不应该访问此密码可以使用的任何内容,也不能访问我的源代码。)
我尝试过的方法是从入门bash脚本生成密码并设置环境变量,然后替换上面的内容:
POSTGRES_PASSWORD=${MY_GENERATED_PASSWORD}
这很有效,但是我不得不一直在自定义bash脚本中包装docker-compose(我可能或者可能不喜欢这样做)。
这必须是一个常见的问题,有更好的解决方案吗?理想情况下,我希望将docker内置的功能组合起来生成随机字符串以用作密码。
或者我应该放弃并检查密码? (我认为这是一种务实的方法,考虑到如果其中任何一个容器受到攻击,攻击面都是敞开的)
答案 0 :(得分:0)
最高安全性:根本不存储密码。
否则,docker-compose肯定是一个构建容器的工具,而不是构建项目的工具。有一个构建脚本在本周运行任何* -compose事物,它们肯定会发生变化,但你的构建脚本将保持稳定的用户界面。