将命令传递给Bluemix中部署的Ruby on Rails应用程序

时间:2015-07-25 15:34:52

标签: ruby-on-rails ruby ibm-cloud

最后,在SO成员JeffSloyer的帮助下,我能够将我的RoR应用程序部署到bluemix上。 RoR应用程序似乎还有一个问题。我无法在此应用中以管理员身份登录。

http://csw-events.mybluemix.net/sign_in

这里的问题不是关于应用程序本身,我已经找到了专门讨论这个RoR应用程序的论坛的解决方案(目前,在线) - > SOLUTION

问题是 1:我可以使用 CF 将此命令传递给Bluemix上已部署的应用

 cf -c "User.last.update_attribute(:admin, true)"

如果没有,传递这些命令的替代方法是什么

至于此,例如

bundle exec rails console
User.last.update_attribute(:admin, true)

2 个答案:

答案 0 :(得分:1)

您无法将命令传递给已在运行的CF应用程序。

通过在应用程序的根目录创建manifest.yml文件并指定命令,可以在应用程序启动时为您提供buildpack运行命令。

示例manifest.yml:

---
applications:
- name: my-rails-app
  command: bundle exec rake cf:on_first_instance db:migrate && bundle exec rails s -p $PORT -e $RAILS_ENV

Tips for Ruby Developers

答案 1 :(得分:0)

您还可以再次推送应用程序并使用-c选项添加命令:

cf push -f manifest.yml -c "User.last.update_attribute(:admin, true)"

这意味着一些停机时间,但只有非常有限的时间。

如果应用程序不再运行并进行后续推送,请使用-c“null”运行相同的cf命令,Cloud Foundry就是这样有点错误。

如果它只是一个你想传递的一次性命令,那么这将是推荐的方式,而不是将它放在清单文件中。