應用程式設定中的容器設定用於改變映像檔的啟動方式和環境。編輯需要 Operator 或 Admin;修改這些設定會影響後續執行的容器。
啟動指令
留空時使用映像檔預設啟動方式。自訂時需要填寫完整的可執行程序及參數,例如:
nginx -g 'daemon off;'指令會按引號和空格解析為參數,不會自動交給 shell 執行。管道、重定向、&& 和環境變數替換只有在你顯式啟動 shell 時才具有 shell 含義。
確實需要 shell 時,可以填寫:
sh -c 'printf "%s\n" "$GREETING"; exec nginx -g "daemon off;"'映像檔必須包含 sh 及所呼叫程序。exec 讓最後的服務進程接替 shell,有利於正確接收停止信號。改變入口還可能跳過映像檔自帶的初始化邏輯,優先遵循映像檔作者的啟動說明。
環境變數
- 打開應用程式設定中的環境變數設定。
- 逐項添加變數名和值,例如
GREETING=Hello或業務要求的資料庫地址。 - 檢查重複項、空值及拼寫,再儲存應用程式設定。
- 在新容器日誌或應用程式輸出中驗證參數已生效。
變數名長度為 1–128,不能包含 =;值最多 4096 個字符。這裡填寫的是值本身,不需要額外包一層 shell 引號。$OTHER 不會因為寫在變數值中就自動替換成另一個變數。
同分組資料庫可以使用應用程式名稱作為主機名。容器內的 localhost 指向該容器自身,不能用它代替另一個資料庫應用程式的地址,參見應用程式間通信。
設定內容的可見性
環境變數屬於共享應用程式設定。平台只對明確識別的秘密字段脫敏,不會自動把每個看起來像密碼的業務變數變為個人秘密。應依據實際帳戶權限決定哪些內容適合存放在這裡。
較大的設定檔案使用 XConfig;持續寫入的業務資料使用資料卷。
啟動失敗怎麼檢查
| 現象 | 常見原因 |
|---|---|
| 找不到程序 | 可執行路徑錯誤,或映像檔根本不包含該程序 |
| 引號解析失敗 | 單雙引號不配對,shell 表達式未顯式使用 shell |
| 服務啟動後立即退出 | 程序轉入後台、缺少必需變數或初始化失敗 |
| 資料庫無法連接 | 使用了錯誤主機名、容器連接埠或認證資訊 |
| 儲存後仍像舊設定 | 新副本尚未替換完成,或 Guardian 未推廣候選設定 |
應用程式的自動重啟延遲可在重啟策略設定中調整,預設 60 秒。重啟不能修復持續存在的錯誤指令;應先修正設定,再看應用程式日誌。