【发布时间】:2014-06-20 18:15:33
【问题描述】:
所以我在 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 任务正在等待某些输入一样。逐步重新运行脚本命令后,一切正常。我猜会发生一些运行时异常,由于某种原因我没有看到,但我找不到任何方法来实际追踪罪魁祸首。
我真的很恼火,因为造成的停机时间以及手动执行本应自动化的任务的必要性。有人知道会发生什么吗?
【问题讨论】: