【问题标题】:openshift deployment gets stuck executing a rake task in a deploy hookopenshift 部署卡在部署挂钩中执行 rake 任务
【发布时间】: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 任务正在等待某些输入一样。逐步重新运行脚本命令后,一切正常。我猜会发生一些运行时异常,由于某种原因我没有看到,但我找不到任何方法来实际追踪罪魁祸首。

我真的很恼火,因为造成的停机时间以及手动执行本应自动化的任务的必要性。有人知道会发生什么吗?

【问题讨论】:

    标签: ruby-on-rails openshift


    【解决方案1】:

    为什么不尝试将脚本的输出重定向到 $OPENSHIFT_DATA_DIR 中的日志文件,以便查看发生了什么? bundle exec rake assets:precompile RAILS_ENV=${RAILS_ENV:-production} >>$OPENSHIFT_DATA_DIR/deploy.log 2>&1

    【讨论】:

      猜你喜欢
      • 2014-05-22
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 2015-04-21
      • 2016-09-24
      • 2012-11-13
      • 2014-11-18
      • 1970-01-01
      相关资源
      最近更新 更多