我有一个曾经在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就在那里,所以我不明白为什么这不起作用。
答案 0 :(得分:4)
我怀疑你对早期的一行有误。我敢打赌“cd”没有按照你的想法行事。
作为“cd”之前的行,在你的bash脚本中,放置set -e
并永远留在那里。如果命令失败,之后的所有内容可能都是错误的。不要让它继续下去。
作为下一行,放置set -x
并将其留在那里,同时你看看它到底在做什么。您应该稍后将其删除。
最后,那个能够帮助你的人,set -u
。尝试使用未设置变量的值时失败。这可能就是问题所在。无论应该设置什么“OPENSHIFT_HOMEDIR”都没有这样做。我预测,这是你的问题。
另外,将pwd
和ls
放在“python”行之前。根据剧本,看看那里到底是什么。