尽pipe设置了执行权限,OpenShift Node.js应用程序的操作挂钩仍然不会执行

我在OpenShift上创build了一个新的Node.js应用程序。 我添加了一个post_deployshell脚本动作挂钩,并运行git update-index --chmod=+x post_deploy.sh为脚本添加执行权限。 然后我承诺并将更改推送到我的OpenShift存储库。

在部署期间,操作挂钩不运行。 我使用了OpenShift应用程序,并且能够从命令行运行脚本。 我在action_hooks目录中运行了ls -l ,注意到post_deploy.sh的权限是-rwx------ 。 如果我的理解是正确的,那就意味着这个脚本只对所有者拥有可执行权限。 是否需要为所有人设置执行权限? 这可能是为什么我的动作钩子不执行部署?

如何让我的动作钩子在部署过程中执行?

我的猜测是你的文件名是错的。 它应该是post_deploy而不是post_deploy.sh 。 尝试重命名它,看看它是否工作。


从动作钩子文档中 ,默认的构build生命周期操作是:

  1. pre_build
  2. build立
  3. 部署
  4. post_deploy

您可以在~/app-root/repo/.openshift/action_hooks 中将已部署的版本(默认情况下) 挂载到您的设备上 ,然后从那里运行它们。 如果确实是一个权限问题,这里就会变得很明显。

您可以交互式编辑此目录中的文件,并在您的设备上运行gear deploy以帮助进行故障排除过程 – 运行此命令时,应该调用deploypost_deploy挂钩。