设置组件启动命令和生命周期
容器部署组件时,ServiceStage提供了回调函数,在应用组件启动时和启动后生命周期的特定阶段执行调用,比如应用组件在停止前希望执行某项操作,就可以注册相应的钩子函数。
生命周期回调函数说明
ServiceStage目前提供的生命周期回调函数如下所示:
- 启动命令:启动命令对应于Docker的ENTRYPOINT启动命令,应用组件将会以该启动命令启动。
- 启动后处理:应用组件启动后触发。
- 停止前处理:应用组件停止(Terminated)前触发,应用组件因执行结束正常退出(Completed)时不会触发此命令。
设置组件启动命令和生命周期
- 选择“容器配置”。
- 单击“启动命令”,设置容器“运行命令”和“运行参数”。
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]
- 运行命令:输入可执行的命令,例如“ /run/server”。
多命令时,运行命令建议用/bin/sh或其他的shell,其他全部命令作为参数传入。
- 运行参数:输入控制容器运行命令参数,例如--port=8080。若参数有多个,多个参数以换行分隔。
- 运行命令:输入可执行的命令,例如“ /run/server”。
- 单击“生命周期”,设置“启动后处理”和“停止前处理”参数。
- 设置“启动后处理”参数
“启动后处理”参数说明如表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。
- 设置“启动后处理”参数