所以当我在Openshift上部署Rails应用程序时,我遇到了这个奇怪的问题。部署过程在我的部署钩子中执行rake任务时遇到困难,如下所示:
pushd ${OPENSHIFT_REPO_DIR} > /dev/null
ln -nfs ${OPENSHIFT_DATA_DIR}/shared/updates ${OPENSHIFT_REPO_DIR}/public/updates
ln -nfs ${OPENSHIFT_DATA_DIR}/shared/downloads ${OPENSHIFT_REPO_DIR}/public/downloads
ln -nfs ${OPENSHIFT_DATA_DIR}/shared/uploads ${OPENSHIFT_REPO_DIR}/public/uploads
echo "exec bundle install --no-deployment"
bundle install --no-deployment --path=vendor/bundle
echo "exec rake db:migrate RAILS_ENV=${RAILS_ENV:-production}"
bundle exec rake db:migrate RAILS_ENV=${RAILS_ENV:-production}
echo "exec rake assets:precompile RAILS_ENV=${RAILS_ENV:-production}"
bundle exec rake assets:precompile RAILS_ENV=${RAILS_ENV:-production}
popd > /dev/null
如果我终止部署脚本,登录到框,手动运行部署挂钩并重新启动Passenger,有时它会正常通过。有时候,钩子脚本会冻结,好像rake任务正在等待一些输入。一步一步地重新运行脚本命令后,一切都很好。我猜可能会发生一些运行时异常,但由于某种原因我没有看到,但我找不到任何方法来实际追踪罪魁祸首。
由于造成的停机时间和手动执行应该自动执行的任务的必要性,我真的很生气。任何人都知道可能会发生什么?
答案 0 :(得分:0)
为什么不尝试将脚本的输出重定向到$ OPENSHIFT_DATA_DIR中的日志文件,以便您可以看到发生了什么?
bundle exec rake assets:precompile RAILS_ENV=${RAILS_ENV:-production} >>$OPENSHIFT_DATA_DIR/deploy.log 2>&1