2016-04-07 5 views
0

Ich versuche, von meinem lokalen Rechner über Capistrano auf meinen Deployment Server zu verteilen. Bei der Bereitstellung stellt es eine Verbindung zum Server her und gibt dann die folgenden Informationen aus.Rails 4 Capistrano-Bereitstellung kann ActiveSupport nicht finden

** 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 

Er sagt, dass es nicht Active finden konnte, aber wenn ich gem Liste auf dem Server ausgeführt wird aufgelistet und zeigt Version 4.2.6, 4.2.4, 4.2.0.

Dies ist ein Berechtigungsproblem?

Hier ist 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" 

Antwort

0

Meine Vermutung ist, dass Sie keine bundle install in Ihrem Capistrano Skript zu starten, bevor Sie versuchen das Vermögen Precompilieren scheinen zu tun.

Führen Sie ein Bündel installieren Sie im Voraus, und es sollte gut funktionieren.

EDIT: require 'capistrano/rails' (oder require 'capistrano/bundler') innerhalb Ihrer Capfile.

Quelle: https://github.com/capistrano/rails

+0

Dies ist meine erste Bereitstellung auf diesem Server. Ich werde den Code aus meinem deploy.rb zu dem obigen Beitrag hinzufügen. Sollte das 'bundle install' in dieser Datei enthalten sein? Ich bin mir nicht sicher, wie man ein Bundle auf dem Server installiert, bevor irgendwas da drüben ankommt. Kannst du mir bitte mehr sagen? – lostrennie

+0

Siehe meine Bearbeitung oben. – born4new

+0

Ich betreibe Capistrano 2.15.7 und dies erfordert nicht funktioniert. Gibt es eine Möglichkeit, dies mit der älteren Version zu tun? – lostrennie