使用 SAE 控制台进行镜像或者 Jar 包应用部署时,SAE 通过容器镜像或者Jar包中预设的参数启动容器。如果在启动前需要进行特殊配置(如Nginx),或者不想采用预设的启动参数,您可以在 SAE 设置容器启动命令进行特殊配置或者覆盖镜像的启动默认值。本配置适用于精通 Docker 的工程师。

背景信息

在制作镜像时容器的启动配置已经在 Dockerfile 文件中ENTRYPOINTCMD 进行了配置,启动时所配置的内容会优先被执行。

例如 Dockerfile 中设置的 ENTRYPOINT: [nginx, '-g', 'daemon off;'] 命令,在容器启动时被第一个执行。
FROM ubuntu
ENTRYPOINT [nginx, '-g', 'daemon off;']
				

设置镜像部署应用的启动命令

  1. 登录 SAE 控制台
  2. 在左侧导航树选择Serverless 应用引擎 > 应用列表,在 应用列表页面右上角单击 创建应用
  3. 在应用的 应用基本信息页签内,设置应用相关信息并单击 下一步:应用部署配置
  4. 应用部署配置页面,选择应用部署方式为 镜像,并展开 启动命令设置并输入相关配置项。
    启动命令
    例如设置命令如下:
    • 启动命令:输入 nginx
    • 启动参数:输入-g
    • 单击 添加下一条,在新的参数行中增加输入参数 daemon off
    注意
    • 如果对原有 Dockerfile 镜像的 ENTRYPOINTCMD 配置内容不熟悉,请勿自定义或者修改启动命令和启动参数,错误的启动命令将导致应用创建失败。
    • Docker 运行时仅支持一条 ENTRYPOINT 命令,SAE 控制台中设置的启动命令将会覆盖制作应用镜像时 Dockerfile 中所设置的 ENTRYPOINTCMD 命令。

设置 Jar 包部署应用的启动命令

Java 应用启动和运行时需要定义启动自命令和参数,如 Java 的 JVM 参数、GC 策略等。

在 SAE 中,系统将上传的 Jar 包自动编译为镜像,并上传至镜像仓库,且以容器方式运行应用。在编译过程中,系统内置了启动命令和参数,指定了 Jar 包的存放路径。SAE 支持白频化修改 Jar 包默认启动命令及命令参数。
注意 对原有 Dockerfile 镜像的 ENTRYPOINTCMD 配置内容不熟悉,请勿自定义或者修改启动命令和启动参数,错误的启动命令将导致应用创建失败。
  1. 登录 SAE 控制台
  2. 在左侧导航树选择Serverless 应用引擎 > 应用列表,在应用列表页面右上角单击创建应用
  3. 在应用的应用基本信息页签内,设置应用相关信息并单击下一步:应用部署配置
  4. 应用部署配置页面,选择应用部署方式为Jar包部署,并展开启动命令设置输入相关配置项。
    启动命令配置

    通过 options 设置线程的堆栈大小,通过 args 参数设置将标准输出和标准错误输出重新定向到指定文件。