将Rails应用程序部署到像服务器这样的云代工厂

时间:2014-07-24 21:24:36

标签: ruby-on-rails ruby deployment cloudfoundry

我试图将Ruby on Rails应用程序部署到anynines.com服务器。这是基于云代工厂的。他们在此处提供示例应用:https://github.com/anynines/simple_rails_app 我成功部署了。当我试图部署一个“Hello World'应用程序,在本地使用内置服务器(' rails服务器'命令),我失败了(错误与后面描述的相同)。此时我应该向您提供有关开发环境的一些信息: Ruby v.1.9.3。 Rails v.4.1.1。 在Windows机器上开发。

然后我尝试从头开始并使用" rails new deploytest"创建了一个新的默认应用程序,它向您显示"欢迎加入"屏幕。然后我创建了一个manifest.yml文件,如下所示:

applications: - name: deploytest memory: 512m instances: 1 host: deploytest domain: de.a9sapp.eu path: .

然后我执行了" cf push"命令。文件上传,构建器运行,最后控制台发布----->上传液滴(34M)。但在那之后,唯一发生的事情就是:

0 of 1 instances running, 1 down 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 down 0 of 1 instances running, 1 down 0 of 1 instances running, 1 down 0 of 1 instances running, 1 down

直到它超时。日志文件说明了这一点:

2014-07-24T22:51:20.73+0200 [DEA] OUT Removing crash for app with id 89eb57a 4-f602-4809-9255-c9dd5944a4c1 2014-07-24T22:51:20.73+0200 [DEA] OUT Stopping app instance (index 0) with guid 89eb57a4-f602-4809-9255-c9dd5944a4c1 2014-07-24T22:51:20.73+0200 [DEA] OUT Stopped app instance (index 0) with guid 89eb57a4-f602-4809-9255-c9dd5944a4c1 2014-07-24T22:51:55.05+0200 [DEA] OUT Starting app instance (index 0) with guid 89eb57a4-f602-4809-9255-c9dd5944a4c1 2014-07-24T22:51:58.80+0200 [API] OUT App instance exited with guid 89eb57a4-f602-4809-9255-c9dd5944a4c1 payload: {"cc_partition"=>"default", "droplet"=>"89eb57a4-f602-4809-9255-c9dd5944a4c1", "version"=>"23663797-8b42-44e7-8913-439f1a0553bd","instance"=>"69928ad0f7b54a4aae4ca70f14532d1", "index"=>0, "reason"=>"CRASHED", "exit_status"=>127, "exit_description"=>"appinstance exited", "crash_timestamp"=>1406235118}

我谷歌搜索了几个小时来解决这个问题,但我没有明白这一点。我试图完全删除SQL信息。我还根据示例项目将database.yml和Gemfile更改为mysql,并在服务器中使用mysql-service。

我发现工作和默认情况之间没有任何差异。应用程序。当然,我可以把样本作为基础,但我想从头开始知道我做错了什么。请告诉我这个秘密,非常感谢。

P.S。:这是什么' cf app deploytest'提示:

requested state: started instances: 0/1 usage: 512M x 1 instances urls: deploytest.de.a9sapp.eu state since cpu memory disk down 2014-07-24 11:26:10 PM 0.0% 0 of 0 0 of 0

1 个答案:

答案 0 :(得分:1)

它需要一个buildpack。添加了

buildpack: https://github.com/heroku/heroku-buildpack-ruby.git

到manifest.yml,分别运行' cf push -b https://github.com/heroku/heroku-buildpack-ruby.git'