2017-03-04 247 views

回答

2

如果通过CLI运行每个容器,则应该将变量作为参数传递为格式为-e "foo=bar"的字符串。

我可以建议的更好的方法是,如果您使用类似docker-compose(我推荐)进行部署。您可以将所有密码设置为.env文件,并在docker-compose文件中引用它们。

web: 
    container_name: web 
    env_file: .env 
+0

非常感谢您的回复!我试过这样做,但不幸的是,如果我在docker-compose中指定了env_file,那么在构建过程中变量不可访问。我想运行迁移并从Dockerfile启动一个服务器,但它不起作用.... –

+0

哦,没关系,我已经找出了什么是错的!我需要在构建完成后使用CMD运行迁移,而不是在运行构建期间尝试运行它们。 –

0

如果你使用的厨师,最好的和预期的做法是使用厨师数据包 - 见https://docs.chef.io/data_bags.html

Databags允许您以加密的形式提交这些键将回购;部署后,它们将被解密并可用于您的环境文件。

除了使用厨师,海报使用compose和融合提到的选项是你最好的选择。