部署动作挂钩无法在openshift中工作

时间:2015-01-15 19:11:42

标签: python django ssh openshift

我有一个曾经在Openshift中工作的部署action_hook。最近这些路径似乎没有起作用(截至今天)。 shell脚本如下所示:

#!/bin/bash
#this one is the deploy hook .openshift/action_hooks/deploy
source $OPENSHIFT_HOMEDIR/python/virtenv/bin/activate
cd $OPENSHIFT_REPO_DIR/

echo "Executing 'python manage.py migrate'"
python manage.py migrate
echo "Executing 'python manage.py syncdb'"
python manage.py syncdb
########################### end of file

当我在openshift上通过SSH连接到应用程序运行时,我收到错误:

python: can't open file 'manage.py': [Errno 2] No such file or directory

我已经使用chmod 777更改了权限,但它不会运行它。有谁知道为什么在以前这些路径过去有效的情况下会发生这种情况?我已经加入$ OPEN_SHIFT_REPO_DIR并且manage.py就在那里,所以我不明白为什么这不起作用。

1 个答案:

答案 0 :(得分:4)

我怀疑你对早期的一行有误。我敢打赌“cd”没有按照你的想法行事。

作为“cd”之前的行,在你的bash脚本中,放置set -e并永远留在那里。如果命令失败,之后的所有内容可能都是错误的。不要让它继续下去。

作为下一行,放置set -x并将其留在那里,同时你看看它到底在做什么。您应该稍后将其删除。

最后,那个能够帮助你的人,set -u。尝试使用未设置变量的值时失败。这可能就是问题所在。无论应该设置什么“OPENSHIFT_HOMEDIR”都没有这样做。我预测,这是你的问题。

另外,将pwdls放在“python”行之前。根据剧本,看看那里到底是什么。