背景:
基于 Gitlab+WebHook 进行 Java 项目的部署。
同样的脚本,使用手工执行可以打包,WebHook 却无法打包,进而影响了部署
调查思路:
1. 排查日志,路径:/www/server/panel/logs/error.log
2. 发现脚本失败原因:plugin/webhook/script/文件名略: line 16: mvn: command not found
3. 进一步确认问题:
a. 新建一个 webhook,执行一个命令 echo $PATH,输出:[size=13.3333px]/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
b. 终端执行步骤 a 中相同命令,输出结果:/www/server/nvm/versions/node/v11.11.0/bin:/opt/maven/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
结论:
从结果看,webhook 中默认获得的 PATH 与终端的不一致
方案:
在脚本的上方增加 export PATH 的方式解决,如 上文中 mvn 命令不存在的问题:
- #!/bin/bash
- export MVN="/opt/maven/bin"
- PATH=$PATH:$MVN
- export $PATH
- # 余下脚本略
复制代码
|
|