Dockerfile - 如何将文件中的密码传递给ENV变量?

时间:2017-03-04 20:42:29

标签: django docker dockerfile

我想将所有机密环境变量 - POSTGRES_PASSWORD,SECRET_KEY等存储在一个单独的文件中,以便它们不会被提交到github。

如何将这些变量包含到Dockerfile中,以便我可以使用它们来运行迁移和类似的东西?

2 个答案:

答案 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并收敛的选项是您最好的选择。