将第一个应用程序部署到VPS,与capistrano挣扎

时间:2013-03-22 11:45:52

标签: ruby-on-rails ruby deployment vps

我正在尝试使用capsitrano将我的第一个应用程序部署到VPS ubuntu 12.10,并遵循RailsCasts“部署到VPS”视频广播。

还有一个问题,我没有添加nginx配置,也没有添加unicorn配置文件。我可以没有他们吗? (我想通过控制台配置nginx。)

我的deploy.rb文件

require "bundler/capistrano"

set :application, "picurwebaruhaz"

set :scm, "git"
set :repository,  "git://github.com/gwuix2/picurwebaruhaz.git"
set :branch, "master"
set :user, "gwuix2"
set :deploy_to, "/home/#{user}/#{application}"

default_run_options[:pty] = true 

# set :scm, :git # You can set :scm explicitly or Capistrano will make an intelligent guess based on known version control directory names
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none`

role :web, "198.211.117.84"                          # Your HTTP server, Apache/etc
role :app, "198.211.117.84"                          # This may be the same as your `Web` server
role :db,  "198.211.117.84", :primary => true # This is where Rails migrations will run
role :db,  "198.211.117.84"

# if you want to clean up old releases on each deploy uncomment this:
after "deploy:restart", "deploy:cleanup"

# if you're still using the script/reaper helper you will need
# these http://github.com/rails/irs_process_scripts

# If you are using Passenger mod_rails uncomment this:
 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

我收到以下错误:

  * executing "cd /home/gwuix2/picurwebaruhaz/releases/20130322113243 && bundle install --gemfile /home/gwuix2/picurwebaruhaz/releases/20130322113243/Gemfile --path /home/gwuix2/picurwebaruhaz/shared/bundle --deployment --quiet --without development test"
    servers: ["198.211.117.84"]
    [198.211.117.84] executing command
 ** [out :: 198.211.117.84] sh: 1: bundle: not found
    command finished in 357ms
*** [deploy:update_code] rolling back
  * executing "rm -rf /home/gwuix2/picurwebaruhaz/releases/20130322113243; true"
    servers: ["198.211.117.84"]
    [198.211.117.84] executing command
    command finished in 384ms
failed: "sh -c 'cd /home/gwuix2/picurwebaruhaz/releases/20130322113243 && bundle install --gemfile /home/gwuix2/picurwebaruhaz/releases/20130322113243/Gemfile --path /home/gwuix2/picurwebaruhaz/shared/bundle --deployment --quiet --without development test'" on 198.211.117.84

编辑:

这是我的应用: APP ON GITHUB https://github.com/gwuix2/picurwebaruhaz

Edit_2: 如果我通过SSH连接到服务器并运行$ gem install bundler,它会安装,但是当我运行时:

 gwuix2@picurbolt:~$ sudo gem install bundler sudo: gem: command not
 found

有什么建议吗?

我自己无法弄清楚。

2 个答案:

答案 0 :(得分:0)

deploy.rb需要:

require "rvm/capistrano"
require "bundler/capistrano"

答案 1 :(得分:0)

尝试运行不带sudo的bundler命令:

gwuix2@picurbolt:~$ gem install bundler sudo: gem: command not found