全部產品
Search
文件中心

Serverless App Engine:設定啟動命令

更新時間:Jul 04, 2025

通過SAE控制台使用容器鏡像或程式碼封裝方式部署應用時,SAE會根據預設的啟動參數來啟動容器。如果需要在容器啟動執行特殊配置(例如Nginx)或不採用預設的啟動參數,您可以通過SAE自訂容器的啟動命令,以實現特殊配置或覆蓋鏡像的啟動預設參數。

背景資訊

在製作鏡像時,容器的啟動配置已經配置在Dockerfile檔案中的ENTRYPOINTCMD。容器啟動時,Dockerfile檔案中的內容會被優先執行。

例如,Dockerfile中設定的以下命令,在容器啟動時將被第一個時執行。

FROM ubuntu
ENTRYPOINT [nginx, '-g', 'daemon off;']                

功能入口

情境不同,操作入口也有所差異:

建立應用

  1. 登入SAE控制台,在左側導覽列選擇應用管理 > 應用列表,然後選擇目標地區和目標命名空間,最後單擊建立應用

  2. 應用基本資料嚮導頁面進行配置後,單擊下一步:進階設定

對正在啟動並執行應用進行變更

警告

重新部署應用後,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。

  1. 登入SAE控制台,在左側導覽列選擇應用管理 > 應用列表,然後選擇目標地區和目標命名空間,最後單擊目標應用程式名稱。

  2. 在目標應用的基礎資訊頁面,單擊部署應用

對已停止的應用進行變更

  1. 登入SAE控制台,在左側導覽列選擇應用管理 > 應用列表,然後選擇目標地區和目標命名空間,最後單擊目標應用程式名稱。

  2. 在目標應用的基礎資訊頁面,單擊修改應用配置

設定應用的啟動命令

通過鏡像部署的應用

本文以給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'

sBXB3VO8G5

通過JAR包部署的應用

Java應用啟動和運行時需要定義啟動命令和參數,如Java的JVM參數、GC策略等。

SAE將上傳的JAR包自動編譯為鏡像,且以容器方式運行應用。在編譯過程中,SAE會內建啟動命令和參數,並指定JAR包的存放路徑。您可以登入SAE控制台修改JAR包預設的啟動命令及命令參數。

重要

如果您對原有Dockerfile鏡像的ENTRYPOINTCMD配置內容不熟悉,請勿自訂或者修改啟動命令和啟動參數,錯誤的啟動命令將導致應用建立失敗。

啟動命令設定地區輸入相關配置項。啟動命令樣本如下。

dQolzyE4Iu

配置項

說明

系統預設啟動命令

SAE預設的啟動命令。

options設定

配置JVM參數。關於參數詳情,請參見JVM參數配置說明Tuning Java Virtual MachinesJVM Tuning: How to Prepare Your Environment for Performance Tuning

如果您需要使用應用的遠端偵錯功能,請根據JDK版本配置所需命令。

  • JDK 11和JDK 17

    -agentlib:jdwp=transport=dt_socket,address=*:9000,server=y,suspend=n
  • 其他JDK版本

    -agentlib:jdwp=transport=dt_socket,address=9000,server=y,suspend=n

參數說明如下。

  • transport:遠端偵錯間的資料轉送方式。

  • address:遠端偵錯的地址。與開啟遠端偵錯時設定的調試連接埠保持一致。遠端偵錯的詳細說明,請參見遠端偵錯

重要

以WAR包、JAR包方式部署應用的啟動命令不同,請勿共用啟動命令。本樣本中的遠端偵錯命令,適用於以上兩種部署方式。

args設定

配置標準輸出和錯誤輸出的重新導向命令,例如1>>/tmp/std.log>&1

通過WAR包部署的應用

啟動命令設定地區輸入相關配置項。啟動命令樣本如下。

nGwm0XDLnO

配置項

說明

系統預設啟動命令

SAE預設的啟動命令。

options設定

配置JVM參數。關於參數詳情,請參見JVM參數配置說明Tuning Java Virtual MachinesJVM Tuning: How to Prepare Your Environment for Performance Tuning

如果您需要使用應用的遠端偵錯功能,請根據JDK版本配置所需命令。

  • JDK 11和JDK 17

    -agentlib:jdwp=transport=dt_socket,address=*:9000,server=y,suspend=n
  • 其他JDK版本

    -agentlib:jdwp=transport=dt_socket,address=9000,server=y,suspend=n

參數說明如下。

  • transport:遠端偵錯間的資料轉送方式。

  • address:遠端偵錯的地址。與開啟遠端偵錯時設定的調試連接埠保持一致。遠端偵錯的詳細說明,請參見遠端偵錯

重要

以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'

FWP1NqMoGb