2016-04-07 32 views
0

我试图通过Capistrano从本地计算机部署到我的部署服务器。当我部署时,它连接到服务器,然后丢弃以下信息。Rails 4 Capistrano部署无法找到有效的支持

** sftp upload /var/folders/x0/hyzt7pms0599ymtyjft739kw0000gn/T/20160406223514.tar.gz -> /tmp/20160406223514.tar.gz 
    [address] /tmp/20160406223514.tar.gz 
    [address] done 
    * sftp upload complete 
    * executing "cd /var/www/address/releases && tar xzf /tmp/20160406223514.tar.gz && rm /tmp/20160406223514.tar.gz" 
    servers: ["address"] 
    [address] executing command 
    command finished in 519ms 
    * 2016-04-06 18:35:59 executing `deploy:finalize_update' 
    triggering before callbacks for `deploy:finalize_update' 
    * 2016-04-06 18:35:59 executing `deploy:assets:symlink' 
    * executing "rm -rf /var/www/address/releases/20160406223514/public/assets && mkdir -p /var/www/address/releases/20160406223514/public && mkdir -p /var/www/address/shared/assets && ln -s /var/www/address/shared/assets /var/www/address/releases/20160406223514/public/assets" 
    servers: ["server"] 
    [server] executing command 
    command finished in 48ms 
    * executing "chmod -R -- g+w /var/www/address/releases/20160406223514 && rm -rf -- /var/www/address/releases/20160406223514/public/system && mkdir -p -- /var/www/address/releases/20160406223514/public/ && ln -s -- /var/www/address/shared/system /var/www/address/releases/20160406223514/public/system && rm -rf -- /var/www/address/releases/20160406223514/log && ln -s -- /var/www/address/shared/log /var/www/address/releases/20160406223514/log && rm -rf -- /var/www/address/releases/20160406223514/tmp/pids && mkdir -p -- /var/www/address/releases/20160406223514/tmp/ && ln -s -- /var/www/address/shared/pids /var/www/address/releases/20160406223514/tmp/pids" 
    servers: ["address"] 
    [address] executing command 
    command finished in 49ms 
    triggering after callbacks for `deploy:update_code' 
    * 2016-04-06 18:35:59 executing `deploy:assets:precompile' 
    triggering before callbacks for `deploy:assets:precompile' 
    * 2016-04-06 18:35:59 executing `deploy:assets:update_asset_mtimes' 
    * executing "[ -e '/var/www/address/shared/assets/.sprockets-manifest*' ] && cat /var/www/address/shared/assets/.sprockets-manifest* || echo" 
    servers: ["address"] 
    [server] executing command 
    command finished in 31ms 
    * executing "cd -- /var/www/address/releases/20160406223514 && RAILS_ENV=production RAILS_GROUPS=assets rake assets:precompile" 
    servers: ["address"] 
    [address] executing command 
** [out :: address] Could not find activesupport-4.2.0 in any of the sources 
** [out :: address] Run `bundle install` to install missing gems. 
    command finished in 547ms 
*** [deploy:update_code] rolling back 
    * executing "rm -rf /var/www/address/releases/20160406223514; true" 
    servers: ["address"] 
    [address] executing command 
    command finished in 57ms 
failed: "sh -c 'cd -- /var/www/address/releases/20160406223514 && RAILS_ENV=production RAILS_GROUPS=assets rake assets:precompile'" on address 

它说,它无法找到的ActiveSupport,但是当我在服务器上运行的宝石列表,它列出,并显示版本4.2.6,4.2.4,4.2.0。

这是一个权限问题?

这里是deploy.rb

set :application, "app" 
set :repository, "repo" 

set :deploy_to, '/var/www/address' 
set :scm, :git 
set :branch, "master" 

set :user, "user" 

set :use_sudo, false 

set :rails_env, "production" 
set :deploy_via, :copy 

set :keep_releases, 5 

default_run_options[:pty] = true 

server "address", :app, :web, :db, :primary => true 


namespace :deploy do 
    desc "Symlink shared config files" 
    task :symlink_config_files do 
     run "#{ try_sudo } ln -s #{ deploy_to }/shared/config/database.yml #{ current_path }/config/database.yml" 
    end 

    desc "Restart Passenger app" 
    task :restart do 
     run "#{ try_sudo } touch #{ File.join(current_path, 'tmp', 'restart.txt') }" 
    end 
end 


after "deploy", "deploy:symlink_config_files" 
after "deploy", "deploy:restart" 
after "deploy", "deploy:cleanup" 

回答

0

我的猜测是,你似乎并没有试图做资产预编译之前推出在Capistrano的脚本bundle install

预先运行软件包安装,它应该工作正常。

编辑:require 'capistrano/rails'(或require 'capistrano/bundler')在您的Capfile里面。

来源:https://github.com/capistrano/rails

+0

这是我第一次部署到此服务器。我将把我的deploy.rb中的代码添加到上面的帖子中。 “捆绑安装”应该在该文件中?我不知道如何在服务器上运行bundle安装之前,你能告诉我更多吗? – lostrennie

+0

看到我上面的编辑。 – born4new

+0

我正在运行Capistrano 2.15.7,并且此要求不起作用。有没有办法与旧版本做到这一点? – lostrennie

相关问题