钩子的概述
你可以在特定的时机使用钩子来运行自定义的脚本。
钩子应该储存在.kamal/hooks文件夹中。运行kamal init
将建立该文件夹并添加一些示例脚本。
你可以在配置文件中设置hooks_path
来更改它们的位置。
如果该脚本返回了一个非零退出码,那么该命令将被中止。
KAMAL_*
环境变量对钩子命令可用,以便进行细致的审计报告,例如触发部署报告或触发一个 JSON webhook。这些变量包括
KAMAL_RECORDED_AT
— UTC 时间戳,采用 ISO 8601 格式,例如2023-04-14T17:07:31Z
KAMAL_PERFORMER
— 本地用户正在执行该命令(来自whoami
)KAMAL_SERVICE_VERSION
— 缩短的服务和版本,用在消息中,例如 app@150b24fKAMAL_VERSION
— 即将被部署的完整版本KAMAL_HOSTS
— 由命令针对的主机,以逗号分隔的列表KAMAL_COMMAND
— 我们正在运行的命令KAMAL_SUBCOMMAND
— 可选: 我们正在运行的子命令KAMAL_DESTINATION
— 可选: 目标,例如 “staging”KAMAL_ROLE
— 可选: 目标角色,例如 “web”
可用的钩子包括
你可以在要避开运行钩子时传递--skip_hooks
。
注意: 钩子文件名必须是钩子名称,没有后缀。例如,pre-deploy钩子应被命名为“pre-deploy”(没有任何文件后缀,例如 .sh 或 .rb)。