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

背景信息

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

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

使用说明

启动命令可以在部署应用过程中设置,也可以在应用部署完成后设置。不同部署方式及应用环境可配置的启动命令不同,请您参考以下文档,根据实际界面进行配置:

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

  1. 登录SAE控制台
  2. 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击创建应用
  3. 应用基本信息页签,设置应用相关信息,配置完成后单击下一步:应用部署配置
    Application_deployment_basic_information

    参数说明如下表所示。

    参数名 说明
    应用名称 输入应用名称。允许数字、字母、下划线(_)以及短划线(-)组合,仅允许字母开头,最大长度36个字符。
    专有网络配置 选择专有网络的配置方式。
    • 自定义配置:选中后,您可以为创建的应用选择所需的命名空间、VPC、VSwitch及安全组。
    • 自动配置:选中后,SAE将自动帮您配置命名空间、VPC、VSwitch及安全组,无需手动选择。
    命名空间 在下拉菜单中选择创建好的命名空间。仅自定义配置专有网络时需要选择。
    说明 命名空间和VPC是一一映射关系,如果需要修改VPC请单击命名空间详情页,在命名空间详情页面单击切换VPC修改VPC信息。
    VSwitch 在下拉菜单中选择VSwitch。仅自定义配置专有网络时需要选择。

    VSwitch数量至少需要配置一个,建议不超过3个,且每个VSwitch至少匹配一个应用实例。

    安全组 在下拉菜单中选择安全组。仅自定义配置专有网络时需要选择。
    注意 如果您的VPC内没有创建安全组,请单击创建安全组,根据提示创建安全组,详细说明请参见创建安全组
    应用实例数 选择需要创建的实例个数。
    VCPU 选择需要创建的实例CPU规格。
    内存 选择需要创建的实例内存规格。
    应用描述 填写应用的基本情况,输入的描述信息不超过100个字符。
  4. 应用部署配置页签,选择技术栈语言Java应用部署方式镜像,展开启动命令设置区域并输入相关配置项。
    注意
    • 如果对原有Dockerfile镜像的ENTRYPOINTCMD配置内容不熟悉,请勿自定义或者修改启动命令和启动参数,错误的启动命令将导致应用创建失败。
    • 由于Docker运行时仅支持一条ENTRYPOINT命令,所以SAE控制台中设置的启动命令,将会覆盖制作应用容器Docker镜像时Dockerfile中所设置的ENTRYPOINTCMD命令。
    设置镜像部署启动命令

    ENTRYPOINT: [nginx, '-g', 'daemon off;']为例,参数说明如下。

    参数 说明
    启动命令 输入启动命令,例如nginx
    启动参数 输入启动参数,例如-g

    单击+添加,可以在新的参数行中增加输入参数daemon off

  5. 单击下一步:确认规格
  6. 确认规格页签,查看您所创建应用的详细信息以及配置费用情况,并单击确认创建
  7. 您可以通过以下方式验证配置是否生效。
    • 方法一:

      在应用的变更记录页面中查看应用变更详情,如果显示执行成功,则表示部署成功,即配置已生效。

    • 方法二:

      在应用基本信息页面的实例部署信息页签查看实例的运行状态。如果运行状态显示为绿色的Running,表示应用部署成功,即配置已生效。

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

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

SAE将上传的JAR包自动编译为镜像,并上传至镜像仓库,且以容器方式运行应用。在编译过程中,内置了启动命令和参数,指定了JAR包的存放路径,支持在SAE控制台上修改JAR包默认的启动命令及命令参数。
注意 如果您对原有Dockerfile镜像的ENTRYPOINTCMD配置内容不熟悉,请勿自定义或者修改启动命令和启动参数,错误的启动命令将导致应用创建失败。

设置JAR包部署应用的启动命令操作步骤与镜像部署的启动命令配置操作相同。具体操作,请参见设置镜像部署应用的启动命令,在步骤4中选择应用部署方式JAR包部署,启动命令示例如下。

配置启动命令

参数说明如下。

参数 说明
系统默认启动命令 SAE默认的启动命令。
options设置 配置JVM参数。关于参数详情,请参见JVM参数配置说明Tuning Java Virtual MachinesJVM Tuning: How to Prepare Your Environment for Performance Tuning
如果您需要使用应用的远程调试功能,请配置以下命令:
-agentlib:jdwp=transport=dt_socket,address=9000,server=y,suspend=n
  • transport:远程调试间的数据传输方式。
  • address:远程调试的地址。与开启远程调试时设置的调试端口保持一致,远程调试的详细说明,请参见Java远程调试
args设置 配置标准输出和错误输出的重定向命令,例如1>>/tmp/std.log>&1
options快捷设置:只有Java环境Dragonwell时可以设置。
开启微服务性能提升(Wisp 2协程) 默认开启,开启后可以提升运行时多线程性能。
开启应用内存优化(G1) 默认开启,开启后可以针对多CPU与大容量内存场景,降低GC时间,适用于GC需要优化、大数据等场景。
开启应用启动加速(Quickstart) 只有Java环境Dragonwell 11时可以设置。选中开启应用启动加速(Quickstart)并设置持久化目录后,可以提升应用启动效率。
注意 开启应用启动加速前,需要先设置NAS存储。具体操作,请参见设置NAS存储
持久化目录 开启应用加速后需要设置,设置的持久化目录推荐为NAS存储的目录或者子目录,达到跨实例间的加速效果。关于如何设置NAS存储,请参见设置NAS存储

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

设置WAR包部署应用的启动命令操作步骤与镜像部署的启动命令配置操作相同。具体操作,请参见设置镜像部署应用的启动命令,在步骤4中选择应用部署方式WAR包部署,启动命令示例如下。

配置启动参数-WAR包部署应用到SAE

参数说明如下。

参数 说明
系统默认启动命令 SAE默认的启动命令。
options设置 配置JVM参数。关于参数详情,请参见JVM参数配置说明Tuning Java Virtual MachinesJVM Tuning: How to Prepare Your Environment for Performance Tuning
如果您需要使用应用的远程调试功能,请配置以下命令:
-agentlib:jdwp=transport=dt_socket,address=9000,server=y,suspend=n
  • transport:远程调试间的数据传输方式。
  • address:远程调试的地址。与开启远程调试时设置的调试端口保持一致,远程调试的详细说明,请参见Java远程调试
注意 以WAR包方式部署应用的启动命令与JAR包方式部署应用的启动命令不同,请您不要共用启动命令。
options快捷设置:只有Java环境Dragonwell时可以设置。
开启微服务性能提升(Wisp 2协程) 默认开启,开启后可以提升运行时多线程性能。
开启应用内存优化(G1) 默认开启,开启后可以针对多CPU与大容量内存场景,降低GC时间,适用于GC需要优化、大数据等场景。
开启应用启动加速(Quickstart) 只有Java环境Dragonwell 11时可以设置。选中开启应用启动加速(Quickstart)并设置持久化目录后,可以提升应用启动效率。
注意 开启应用启动加速前,需要先设置NAS存储。具体操作,请参见设置NAS存储
持久化目录 开启应用加速后需要设置,设置的持久化目录推荐为NAS存储的目录或者子目录,达到跨实例间的加速效果。关于如何设置NAS存储,请参见设置NAS存储

应用部署完成后配置启动命令

如果您在创建应用时没有配置启动命令,可以在应用部署完成后配置。

  1. 登录SAE控制台
  2. 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击具体应用名称。
  3. 在应用详情页面的右上角,单击部署应用
  4. 部署应用页面下方,展开启动命令设置区域,根据您的需求配置参数,然后单击确认

    本章节以JAR包部署的应用为例说明启动命令参数,镜像及WAR包部署时的启动命令的参数,请参见设置镜像部署应用的启动命令设置WAR包部署应用的启动命令

    配置启动命令

    参数说明如下。

    参数 说明
    系统默认启动命令 SAE默认的启动命令。
    options设置 配置JVM参数。关于参数详情,请参见JVM参数配置说明Tuning Java Virtual MachinesJVM Tuning: How to Prepare Your Environment for Performance Tuning
    如果您需要使用应用的远程调试功能,请配置以下命令:
    -agentlib:jdwp=transport=dt_socket,address=9000,server=y,suspend=n
    • transport:远程调试间的数据传输方式。
    • address:远程调试的地址。与开启远程调试时设置的调试端口保持一致,远程调试的详细说明,请参见Java远程调试
    args设置 配置标准输出和错误输出的重定向命令,例如1>>/tmp/std.log>&1
    options快捷设置:只有Java环境Dragonwell时可以设置。
    开启微服务性能提升(Wisp 2协程) 默认开启,开启后可以提升运行时多线程性能。
    开启应用内存优化(G1) 默认开启,开启后可以针对多CPU与大容量内存场景,降低GC时间,适用于GC需要优化、大数据等场景。
    开启应用启动加速(Quickstart) 只有Java环境Dragonwell 11时可以设置。选中开启应用启动加速(Quickstart)并设置持久化目录后,可以提升应用启动效率。
    注意 开启应用启动加速前,需要先设置NAS存储。具体操作,请参见设置NAS存储
    持久化目录 开启应用加速后需要设置,设置的持久化目录推荐为NAS存储的目录或者子目录,达到跨实例间的加速效果。关于如何设置NAS存储,请参见设置NAS存储
    注意 单击确认后,该应用将会被重启,请在业务较少的时间段进行。

问题反馈

如果您在使用SAE过程中有任何疑问,欢迎您扫描下面的二维码或搜索钉钉群号23198618,加入钉钉群与我们交流。SAE钉钉群2