我在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
。如果我的理解是正确的,那意味着该脚本仅对所有者具有可执行权限。是否需要为所有人设置执行权限?这可能就是我的动作挂钩不能在部署时执行的原因吗?
如何在部署期间执行动作挂钩?
答案 0 :(得分:3)
我的猜测是你的文件名错了。它应该是post_deploy
而不是post_deploy.sh
。尝试重命名它,看看它是否有效。
从action hooks documentation开始,默认的构建生命周期操作为:
~/app-root/repo/.openshift/action_hooks
时,您gear deploy
可以部署版本(默认情况下),并尝试从那里运行它们。如果它确实是一个权限问题,它将在这里变得明显。
您可以交互式编辑此目录中的文件并在设备上运行deploy
以帮助进行故障排除 - 在运行此命令时应调用post_deploy
和[[NSNotificationCenter defaultCenter] postNotificationName:NOTIF_SOMETHING_SOMETHING object:self];
挂钩。