通過SAE控制臺使用容器鏡像或代碼包方式部署應用時,SAE會根據預設的啟動參數來啟動容器。如果需要在容器啟動執行特殊配置(例如Nginx)或不采用預設的啟動參數,您可以通過SAE自定義容器的啟動命令,以實現特殊配置或覆蓋鏡像的啟動默認參數。
背景信息
在制作鏡像時,容器的啟動配置已經配置在Dockerfile文件中的ENTRYPOINT或CMD。容器啟動時,Dockerfile文件中的內容會被優先執行。
例如,Dockerfile中設置的以下命令,在容器啟動時將被第一個執行。
FROM ubuntu
ENTRYPOINT [nginx, '-g', 'daemon off;']
使用說明
啟動命令既可以在創建應用過程中,也可以在部署應用過程中配置。配置路徑如下。
創建應用:在創建應用頁面的應用部署配置配置向導頁面配置。
部署應用:
當實例數大于等于1時,在目標應用的基本信息頁面,單擊部署應用,在部署應用頁面配置。
當實例數等于0時,在目標應用的基本信息頁面,單擊修改應用配置,在修改應用配置頁面配置。
說明應用配置修改后,在下一次應用實例數大于0時,部署應用才會生效。
不同部署方式及應用環境操作步驟類似,但可配置的啟動命令不同,您可以根據實際界面配置。
設置鏡像部署應用的啟動命令
以創建Java應用為例,在應用部署配置配置向導頁面選擇應用部署方式為鏡像,展開啟動命令設置區域并輸入相關配置項。當啟動方式選擇Docker原生方式,啟動命令示例如下。
以ENTRYPOINT: [nginx, '-g', 'daemon off;']
為例,參數說明如下。
配置項 | 說明 |
啟動命令 | 輸入啟動命令,例如 |
啟動參數 | 輸入啟動參數,例如 單擊+添加,可以在新的參數行中增加輸入參數 |
設置JAR包部署應用的啟動命令
Java應用啟動和運行時需要定義啟動命令和參數,如Java的JVM參數、GC策略等。
SAE將上傳的JAR包自動編譯為鏡像,并上傳至鏡像倉庫,且以容器方式運行應用。在編譯過程中,SAE會內置啟動命令和參數,并指定JAR包的存放路徑。您可以登錄SAE控制臺修改JAR包默認的啟動命令及命令參數。
如果您對原有Dockerfile鏡像的ENTRYPOINT和CMD配置內容不熟悉,請勿自定義或者修改啟動命令和啟動參數,錯誤的啟動命令將導致應用創建失敗。
以創建Java應用為例,在應用部署配置配置向導頁面選擇應用部署方式為JAR包部署,展開啟動命令設置區域并輸入相關配置項。啟動命令示例如下。
配置項 | 說明 |
系統默認啟動命令 | SAE默認的啟動命令。 |
options設置 | 配置JVM參數。關于參數詳情,請參見JVM參數配置說明、Tuning Java Virtual Machines和JVM Tuning: How to Prepare Your Environment for Performance Tuning。 如果您需要使用應用的遠程調試功能,請根據JDK版本配置所需命令。
參數說明如下。
重要 以WAR包、JAR包方式部署應用的啟動命令不同,請勿共用啟動命令。本示例中的遠程調試命令,適用于以上兩種部署方式。 |
args設置 | 配置標準輸出和錯誤輸出的重定向命令,例如 |
options快捷設置 | 只有Java環境為Dragonwell時可以設置。
|
設置WAR包部署應用的啟動命令
以創建Java應用為例,在應用部署配置配置向導頁面選擇應用部署方式為WAR包部署,展開啟動命令設置區域并輸入相關配置項。啟動命令示例如下。
配置項 | 說明 |
系統默認啟動命令 | SAE默認的啟動命令。 |
options設置 | 配置JVM參數。關于參數詳情,請參見JVM參數配置說明、Tuning Java Virtual Machines和JVM Tuning: How to Prepare Your Environment for Performance Tuning。 如果您需要使用應用的遠程調試功能,請根據JDK版本配置所需命令。
參數說明如下。
重要 以WAR包、JAR包方式部署應用的啟動命令不同,請勿共用啟動命令。本示例中的遠程調試命令,適用于以上兩種部署方式。 |
options快捷設置 | 只有Java環境為Dragonwell時可以設置。
|
設置ZIP包部署應用的啟動命令
以創建Python應用為例,在應用部署配置配置向導頁面選擇應用部署方式為ZIP包部署,展開啟動命令設置區域并輸入相關配置項。當啟動方式選擇Shell腳本方式,啟動命令示例如下。
gunicorn -w 3 -b 0.0.0.0:8080 app.hello:app