所以目前我正在為我的 python 燒瓶服務器構建一個 docker 映像,我訪問代碼中的秘密變數的方式是
app.config["SECRET_KEY"] = os.environ.get("todo_secret_key") or "secret"
現在如果我想在沒有容器的情況下運行代碼,我會使用 export command(linux) 在環境中臨時擁有密鑰,但我需要它在容器的環境中。
現在,我知道的一些方法是
在 docker run 命令中使用 -e 傳遞它
docker run {imageName} -e {name}={value}(不安全,因為我不希望它出現在終端日志中)通過指定環境變數將其傳遞到 dockerfile 中(絕對不安全,因為此檔案將是公開的)
除了這些方法之外,還有沒有更安全的方法來傳遞變數
Ps 這是我第一次構建影像??,如果這是一個愚蠢的問題,請道歉
uj5u.com熱心網友回復:
如果您在構建 docker 映像時擔心這一點,那么您正試圖將運行時配置與構建時配置聯系得太緊!
請記住,這些階段是離散的,如果相互關聯的話。
開發 -> 構建 -> 測驗 -> 部署 -> 測驗(非功能性) -> 重復...
任何階段都不應該決定未來階段做什么。docker build是“構建”階段,因此應該不知道最終部署映像時環境中的正確配置。怎么可能?該配置可能會隨著時間而改變!
相反,請尋求配置管理來處理這些型別的決策。您的 docker 調度程式(Kubernetes 很常見,但其他輕量級執行程式,如 Docker Swarm 或 ECS 也應該這樣做)應該有一種讀取組態檔并將其注入環境的方法。對配置管理的全面討論可以(并且已經)填滿教科書。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/417502.html
標籤:
上一篇:如何從WikiDataURL中提取/抓取資訊的特定部分
下一篇:如何同時使用:^和:.2f?
