通過SAE控制台使用容器鏡像或程式碼封裝方式部署應用時,SAE會根據預設的啟動參數來啟動容器。如果需要在容器啟動執行特殊配置(例如Nginx)或不採用預設的啟動參數,您可以通過SAE自訂容器的啟動命令,以實現特殊配置或覆蓋鏡像的啟動預設參數。
背景資訊
在製作鏡像時,容器的啟動配置已經配置在Dockerfile檔案中的ENTRYPOINT或CMD。容器啟動時,Dockerfile檔案中的內容會被優先執行。
例如,Dockerfile中設定的以下命令,在容器啟動時將被第一個時執行。
FROM ubuntu
ENTRYPOINT [nginx, '-g', 'daemon off;'] 功能入口
情境不同,操作入口也有所差異:
建立應用
登入SAE控制台,在左側導覽列選擇,然後選擇目標地區和目標命名空間,最後單擊建立應用。
在應用基本資料嚮導頁面進行配置後,單擊下一步:進階設定。
對正在啟動並執行應用進行變更
重新部署應用後,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。
登入SAE控制台,在左側導覽列選擇,然後選擇目標地區和目標命名空間,最後單擊目標應用程式名稱。
在目標應用的基礎資訊頁面,單擊部署應用。
對已停止的應用進行變更
登入SAE控制台,在左側導覽列選擇,然後選擇目標地區和目標命名空間,最後單擊目標應用程式名稱。
在目標應用的基礎資訊頁面,單擊修改應用配置。
設定應用的啟動命令
通過鏡像部署的應用
本文以給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配置內容不熟悉,請勿自訂或者修改啟動命令和啟動參數,錯誤的啟動命令將導致應用建立失敗。
在啟動命令設定地區輸入相關配置項。啟動命令樣本如下。

配置項 | 說明 |
系統預設啟動命令 | SAE預設的啟動命令。 |
options設定 | 配置JVM參數。關於參數詳情,請參見JVM參數配置說明、Tuning Java Virtual Machines和JVM Tuning: How to Prepare Your Environment for Performance Tuning。 如果您需要使用應用的遠端偵錯功能,請根據JDK版本配置所需命令。
參數說明如下。
重要 以WAR包、JAR包方式部署應用的啟動命令不同,請勿共用啟動命令。本樣本中的遠端偵錯命令,適用於以上兩種部署方式。 |
args設定 | 配置標準輸出和錯誤輸出的重新導向命令,例如 |
通過WAR包部署的應用
在啟動命令設定地區輸入相關配置項。啟動命令樣本如下。

配置項 | 說明 |
系統預設啟動命令 | SAE預設的啟動命令。 |
options設定 | 配置JVM參數。關於參數詳情,請參見JVM參數配置說明、Tuning Java Virtual Machines和JVM Tuning: How to Prepare Your Environment for Performance Tuning。 如果您需要使用應用的遠端偵錯功能,請根據JDK版本配置所需命令。
參數說明如下。
重要 以WAR包、JAR包方式部署應用的啟動命令不同,請勿共用啟動命令。本樣本中的遠端偵錯命令,適用於以上兩種部署方式。 |
通過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'
