Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在EC2上部署RubyonRails项目_Ruby On Rails_Git_Deployment_Amazon Ec2 - Fatal编程技术网

Ruby on rails 在EC2上部署RubyonRails项目

Ruby on rails 在EC2上部署RubyonRails项目,ruby-on-rails,git,deployment,amazon-ec2,Ruby On Rails,Git,Deployment,Amazon Ec2,我已经设置好了一切,我能够通过ssh在免费层上连接到服务器 现在我的项目是如何上传服务器文件和数据库 我看到rails中有一些gem,比如ruber,可以将文件部署到服务器上,但是如何集成git以便提交更改呢?代码 要上传文件,请签出。另一个流行的工具是 下面是一个简单的deploy.rb,用于rails3应用程序(假设乘客),它现在只需要一台服务器(用实际值替换所有服务器): (注意:这是将用于运行迁移的服务器,而不是实际的数据库。应该在数据库.yml中指定数据库) 设置数据库本身超出了这个答

我已经设置好了一切,我能够通过ssh在免费层上连接到服务器

现在我的项目是如何上传服务器文件和数据库

我看到rails中有一些gem,比如ruber,可以将文件部署到服务器上,但是如何集成git以便提交更改呢?

代码 要上传文件,请签出。另一个流行的工具是

下面是一个简单的
deploy.rb
,用于rails3应用程序(假设乘客),它现在只需要一台服务器(用实际值替换所有服务器):

(注意:这是将用于运行迁移的服务器,而不是实际的数据库。应该在
数据库.yml
中指定数据库)


设置数据库本身超出了这个答案的范围,但是您可以直接在实例上运行db,或者看看Amazon的RDS,它的设置非常简单,比在单个实例上运行db更稳定。

您也可以通过
ssh\u options[:keys]
列出密钥,但我还没有完全测试过,所以没有把它包括在回复中。
require 'bundler/capistrano'
require 'capistrano_colors'

set :application, "<APP_NAME>"
set :repository,  "git@github.com:<USER>/<PROJECT>.git"
set :branch, "master"
set :deploy_to, "/home/<DEPLOY_USER>/<APP_NAME>"
set :keep_releases, 3

set :scm, :git
set :user, "<DEPLOY_USER>"
set :use_sudo, false
set :deploy_via, :remote_cache

default_run_options[:pty] = true
default_run_options[:shell] = '/bin/bash -l'

ssh_options[:forward_agent] = true

role :web, "<IP_OR_PUBLIC_DNS>"
role :app, "<IP_OR_PUBLIC_DNS>"

namespace :deploy do
  task :start do ; end
  task :stop do ; end
  task :restart, :roles => :app, :except => { :no_release => true } do
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end
end

after "deploy", "deploy:cleanup"
role :db, "<IP_OR_PUBLIC_DNS>", :primary => true