【发布时间】:2016-04-08 23:51:04
【问题描述】:
如何将基于 Sinatra 的 Ruby Web 应用程序部署到 Heroku?
我有一个基于 Sinatra 的 web application。当我想在本地运行它时,我会执行以下操作:
- 在命令行中,我进入目录servers/dev。
- 运行
thin start -R songcontest.ru
现在我想将相同的应用程序部署到 Heroku。我按照教程的前几个步骤进行操作(step 1、step 2、step 3)。
现在我想运行git push heroku master,这是将应用程序部署到 Heroku 的下一步。当我这样做时,我收到以下错误消息:
remote: ! Push rejected, no Cedar-supported app detected
remote: HINT: This occurs when Heroku cannot detect the buildpack
remote: to use for this application automatically.
remote: See https://devcenter.heroku.com/articles/buildpacks
我该如何修复它(让我的应用程序在 Heroku 上运行)?
【问题讨论】:
-
你看过错误信息中推荐的文章了吗?
-
@thesecretmaster 是的。我设置了构建包并将 Gemfile 放入根目录。这(存在 Gemfile)是 Ruby 构建包的检测脚本检查的内容。但我仍然收到错误消息(未检测到构建包)。我询问了 Heroku 的支持。当前版本可在github.com/dpisarenko/50web/tree/heroku 获得。我尝试在本地运行该应用程序(
bundle install,然后是bundle exec rackup -p 9292 songcontest.ru)并且它工作正常(在localhost:9292上可以找到一个页面)。 -
@thesecretmaster 有关我目前尝试的更多详细信息,请访问altruix.cc/song-contest/deployment-on-heroku。
-
如果你在本地尝试
thin start -R songcontest.ru会怎样?那样有用吗?另外,你有 Procfile 或 config.ru 吗? -
是的,
thin start -R songcontest.ru有效。不,我没有Procfile,也没有config.ru。