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

时间:2015-05-27 05:16:57

标签: node.js git shell openshift

我在OpenShift上创建了一个新的Node.js应用程序。我添加了一个post_deploy shell脚本操作挂钩并运行ScalingFactor = NewDimension / OriginalDimension ScaledPosition = OriginalPosition * ScalingFactor 以向脚本添加执行权限。然后我提交并将更改推送到我的OpenShift存储库。

在部署期间,不会运行操作挂钩。我ssh&到我的OpenShift应用程序,我能够从命令行运行脚本。我在action_hooks目录中运行git update-index --chmod=+x post_deploy.sh,并注意到post_deploy.sh的权限为ls -l。如果我的理解是正确的,那意味着该脚本仅对所有者具有可执行权限。是否需要为所有人设置执行权限?这可能就是我的动作挂钩不能在部署时执行的原因吗?

如何在部署期间执行动作挂钩?

1 个答案:

答案 0 :(得分:3)

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

action hooks documentation开始,默认的构建生命周期操作为:

  1. pre_build
  2. 构建
  3. 部署
  4. post_deploy
  5. ~/app-root/repo/.openshift/action_hooks时,您gear deploy可以部署版本(默认情况下),并尝试从那里运行它们。如果它确实是一个权限问题,它将在这里变得明显。

    您可以交互式编辑此目录中的文件并在设备上运行deploy以帮助进行故障排除 - 在运行此命令时应调用post_deploy[[NSNotificationCenter defaultCenter] postNotificationName:NOTIF_SOMETHING_SOMETHING object:self]; 挂钩。