【发布时间】:2017-03-04 20:42:28
【问题描述】:
我想将所有机密环境变量 - POSTGRES_PASSWORD、SECRET_KEY 等存储在一个单独的文件中,这样它们就不会被提交到 github。
如何将这些变量包含到 Dockerfile 中,以便我可以使用它们来运行迁移和类似的东西?
【问题讨论】:
标签: django docker dockerfile
我想将所有机密环境变量 - POSTGRES_PASSWORD、SECRET_KEY 等存储在一个单独的文件中,这样它们就不会被提交到 github。
如何将这些变量包含到 Dockerfile 中,以便我可以使用它们来运行迁移和类似的东西?
【问题讨论】:
标签: django docker dockerfile
如果您通过 CLI 运行每个容器 .. 您应该将变量作为参数作为-e "foo=bar" 格式的字符串传递。
我可以建议的更好方法是,如果您使用 docker-compose(我推荐)之类的东西进行部署。您可以在 .env 文件中设置所有密码,并在 docker-compose 文件中引用它们。
web:
container_name: web
env_file: .env
【讨论】:
如果您使用的是 Chef,最佳和预期的做法是使用 Chef 数据包——请参阅 https://docs.chef.io/data_bags.html
Databags 允许您以加密形式将这些密钥提交到您的 repo;部署后,它们将被解密并可用于您的环境文件。
除了使用 chef 之外,使用 compose 和收敛的海报提到的选项是你最好的选择。
【讨论】: