我想将所有机密环境变量 - POSTGRES_PASSWORD,SECRET_KEY等存储在一个单独的文件中,以便它们不会被提交到github。
如何将这些变量包含到Dockerfile中,以便我可以使用它们来运行迁移和类似的东西?
答案 0 :(得分:2)
如果您通过CLI运行每个容器,则应将变量作为参数传递为-e "foo=bar"
格式的字符串。
我建议的更好的方法是,如果您使用docker-compose
(我建议)进行部署。您可以在.env
文件中设置所有密码,并在docker-compose文件中引用它们。
web:
container_name: web
env_file: .env
答案 1 :(得分:0)
如果您正在使用Chef,最佳和预期的做法是使用Chef数据包 - 请参阅https://docs.chef.io/data_bags.html
Databags允许您以加密形式将这些密钥提交到您的仓库;部署后,它们将被解密并可用于您的环境文件。
除了使用厨师之外,海报使用compose
并收敛的选项是您最好的选择。