2017-03-04 46 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和融合提到的選項是你最好的選擇。