通過SAE控制臺使用容器鏡像或代碼包方式部署應用時,SAE會根據預設的啟動參數來啟動容器。如果需要在容器啟動執行特殊配置(例如Nginx)或不采用預設的啟動參數,您可以通過SAE自定義容器的啟動命令,以實現特殊配置或覆蓋鏡像的啟動默認參數。
背景信息
在制作鏡像時,容器的啟動配置已經配置在Dockerfile文件中的ENTRYPOINT或CMD。容器啟動時,Dockerfile文件中的內容會被優先執行。
例如,Dockerfile中設置的以下命令,在容器啟動時將被第一個執行。
FROM ubuntu
ENTRYPOINT [nginx, '-g', 'daemon off;']
使用說明
啟動命令既可以在創建應用過程中,也可以在部署應用過程中配置。配置路徑如下。
創建應用:在創建應用頁面的高級設置向導頁面配置。
部署應用:
當實例數大于等于1時,在目標應用的基本信息頁面,單擊部署應用,在部署應用頁面配置。
當實例數等于0時,在目標應用的基本信息頁面,單擊修改應用配置,在修改應用配置頁面配置。
說明應用配置修改后,在下一次應用實例數大于0時,部署應用才會生效。
不同部署方式及應用環境操作步驟類似,但可配置的啟動命令不同,您可以根據實際界面配置。
設置鏡像部署應用的啟動命令
以創建Java應用為例,在應用基本信息向導頁面選擇應用部署方式為鏡像,在高級設置向導頁的啟動命令區域選擇腳本類型,然后配置容器的啟動命令。
>_ /bin/sh
sh -c 'while true; do echo hello; sleep 10;done'
>_ /bin/bash
bash -c 'while true; do echo hello; sleep 10;done'
設置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設置 | 配置標準輸出和錯誤輸出的重定向命令,例如 |
設置WAR包部署應用的啟動命令
以創建Java應用為例,在應用部署配置配置向導頁面選擇應用部署方式為WAR包部署,展開啟動命令設置區域并輸入相關配置項。啟動命令示例如下。
配置項 | 說明 |
系統默認啟動命令 | SAE默認的啟動命令。 |
options設置 | 配置JVM參數。關于參數詳情,請參見JVM參數配置說明、Tuning Java Virtual Machines和JVM Tuning: How to Prepare Your Environment for Performance Tuning。 如果您需要使用應用的遠程調試功能,請根據JDK版本配置所需命令。
參數說明如下。
重要 以WAR包、JAR包方式部署應用的啟動命令不同,請勿共用啟動命令。本示例中的遠程調試命令,適用于以上兩種部署方式。 |
設置ZIP包部署應用的啟動命令
以創建Python應用為例,在應用部署配置配置向導頁面選擇應用部署方式為ZIP包部署,展開啟動命令設置區域選擇腳本類型,然后設置啟動命令。示例如下:
>_ /bin/sh
sh -c 'gunicorn -w 3 -b 0.0.0.0:8080 app.hello:app'
>_ /bin/bash
bash -c 'gunicorn -w 3 -b 0.0.0.0:8080 app.hello:app'