钩子的概述
你可以在特定的时机使用钩子来运行自定义的脚本。
钩子应该储存在.kamal/hooks文件夹中。运行kamal init将建立该文件夹并添加一些示例脚本。
你可以在配置文件中设置hooks_path来更改它们的位置。
如果该脚本返回了一个非零退出码,那么该命令将被中止。
KAMAL_*环境变量对钩子命令可用,以便进行细致的审计报告,例如触发部署报告或触发一个 JSON webhook。这些变量包括
KAMAL_RECORDED_AT— UTC 时间戳,采用 ISO 8601 格式,例如2023-04-14T17:07:31ZKAMAL_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)。