我想docker-compose.yaml在 git repo 中保存一個檔案。我想要一些默認.env變數,但我也想要類似.env.localwhich can override的東西.env,但我不想提交.env.local,所以它應該被 gitignored。
有沒有辦法告訴docker-compose.yaml“如果存在則使用.env.local,否則使用.env”?
這個想法是允許某人克隆存盤庫,如果他們愿意,可以使用他們自己的.env.local,如果他們不想自定義它,則無需 git 更改來提交或使用默認.env值。
uj5u.com熱心網友回復:
如果您按名稱使用 env 檔案中的值,如下所示。您可以使用如圖所示的posix 引數擴展來獲取默認值行為。Compose 將使用.env檔案中該變數的值,或者如果它在您的 shell 中設定,否則它將默認為default-value。
services:
myapp:
environment:
SOME_VALUE: ${SOME_VALUE:-default-value}
如果您打算在密鑰下使用它,env_file您可以使用上面示例中的知識做一些技巧。
services:
myapp:
env_file: ${ENV_FILE:-.env.local}
現在它將默認使用 .env.local。除非您碰巧將.env檔案放在專案的根目錄(從您呼叫 compose 的位置)并覆寫其中的ENV_FILE變數。或將其匯出到您的外殼中。請注意,必須包含 .env 檔案才能ENV_FILE=.env在 env_file 中擴展為 .env:
ENV_FILE=.env
OTHER_STUFF=foo
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/417555.html
標籤:
