更新时间:2024-12-16 GMT+08:00

设置组件启动命令和生命周期

容器部署组件时,ServiceStage提供了回调函数,在应用组件启动时和启动后生命周期的特定阶段执行调用,比如应用组件在停止前希望执行某项操作,就可以注册相应的钩子函数。

生命周期回调函数说明

ServiceStage目前提供的生命周期回调函数如下所示:

  • 启动命令:启动命令对应于Docker的ENTRYPOINT启动命令,应用组件将会以该启动命令启动。
  • 启动后处理:应用组件启动后触发。
  • 停止前处理:应用组件停止(Terminated)前触发,应用组件因执行结束正常退出(Completed)时不会触发此命令。

设置组件启动命令和生命周期

  1. 选择“容器配置”。
  2. 单击“启动命令”,设置容器“运行命令”“运行参数”

    Docker的镜像拥有存储镜像信息的相关元数据,如果不设置“生命周期”命令和参数,应用运行时将运行镜像制作时提供的默认的命令和参数,Docker将这两个字段定义为“Entrypoint”和 “CMD”。关于这两个参数的详细信息,请查看Docker的Entrypoint说明CMD说明

    如果在部署应用组件时填写了应用的“运行命令”“运行参数”,将会覆盖镜像构建时的默认命令 "Entrypoint"、“CMD”,规则如表1所示。

    表1 启动命令参数说明

    镜像Entrypoint

    镜像CMD

    应用运行命令

    应用运行参数

    最终执行

    [touch]

    [/root/test]

    未设置

    未设置

    [touch /root/test]

    [touch]

    [/root/test]

    [mkdir]

    未设置

    [mkdir]

    [touch]

    [/root/test]

    未设置

    [/opt/test]

    [touch /opt/test]

    [touch]

    [/root/test]

    [mkdir]

    [/opt/test]

    [mkdir /opt/test]

    1. 运行命令:输入可执行的命令,例如“ /run/server”。

      多命令时,运行命令建议用/bin/sh或其他的shell,其他全部命令作为参数传入。

    2. 运行参数:输入控制容器运行命令参数,例如--port=8080。若参数有多个,多个参数以换行分隔。

  3. 单击“生命周期”,设置“启动后处理”“停止前处理”参数。

    • 设置“启动后处理”参数
      “启动后处理”参数说明如表2所示,“处理方式”选择其中一个即可。
      表2 启动后处理参数说明

      处理方式

      执行命令

      命令行方式

      在组件实例中执行指定的命令,配置为需要执行的命令。

      命令的格式为Command Args[1] Args[2]…,Command为系统命令(bash方式)或者用户自定义可执行程序(二进制方式),如果未指定路径则在默认路径下寻找可执行程序。

      如果需执行多条运行命令,需分行书写或采用将命令写入脚本执行的方式。

      说明:

      不支持后台执行和异步执行的命令。

      例如需要执行的命令示例如下:

      exec: 
        command: 
        - /install.sh 
        - install_agent

      请在执行脚本中填写: /install.sh install_agent。这条命令表示组件部署成功后将执行install.sh。

      Http请求方式

      发起一个HTTP调用请求。

      • 路径:请求的URL路径,可选项。取值示例:/nginx。
      • 端口:请求的端口,必选项。取值示例:80。
      • 主机地址:请求的IP地址,可选项,默认是应用所在的节点IP。取值示例:127.0.0.1。
    • 设置“停止前处理”参数
      “停止前处理”参数说明如表3所示,“处理方式”选择其中一个即可。
      表3 停止前处理参数说明

      处理方式

      执行命令

      命令行方式

      在组件实例中执行指定的命令,配置为需要执行的命令。

      命令的格式为Command Args[1] Args[2]…,Command为系统命令(bash方式)或者用户自定义可执行程序(二进制方式)。如果未指定路径则在默认路径下寻找可执行程序。

      如果需执行多条运行命令,需分行书写或采用将命令写入脚本执行的方式。

      例如需要执行的命令示例如下:

      exec: 
        command: 
        - /uninstall.sh 
        - uninstall_agent

      请在执行脚本中填写: /uninstall.sh uninstall_agent。这条命令表示组件被删除或者停止运行前将执行uninstall.sh。

      Http请求方式

      发起一个HTTP调用请求。

      • 路径:请求的URL路径,可选项。取值示例:/nginx。
      • 端口:请求的端口,必选项。取值示例:80。
      • 主机地址:请求的IP地址,可选项,默认是应用所在的节点IP。取值示例:127.0.0.1。