设置组件启动命令和生命周期
容器部署组件时,ServiceStage提供了回调函数,在应用组件启动时和启动后生命周期的特定阶段执行调用,比如应用组件在停止前希望执行某项操作,就可以注册相应的钩子函数。
生命周期回调函数说明
ServiceStage目前提供的生命周期回调函数如下所示:
- 启动命令:启动命令对应于docker的ENTRYPOINT启动命令,应用组件将会以该启动命令启动。
- 启动后处理:应用组件启动后触发。
- 停止前处理:应用组件停止前触发。
设置组件启动命令和生命周期
- 选择“容器配置”。
- 单击“启动命令”,设置容器“运行命令”和“运行参数”。
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为系统命令或者用户自定义可执行程序,如果未指定路径则在默认路径下寻找可执行程序),如果需要执行多条命令,建议采用将命令写入脚本执行的方式。
需要执行的命令示例如下:
exec: command: - /install.sh - install_agent
请在执行脚本中填写: /install.sh install_agent。
这条命令表示组件部署成功后将执行install_agent安装。
HTTP请求方式
发起一个HTTP调用请求。配置参数如下:
- 路径:请求的URL路径,可选项。
- 端口:请求的端口,必选项。
- 主机地址:请求的IP地址,可选项,默认是应用所在的节点IP。