Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Capistrano compile assets error - assets:precompile:nondigest?

My App seems to be deploying correctly but I'm getting this error:

      * executing "cd /home/deploy/tomahawk/releases/20120208222225 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
    servers: ["ip_address"]
    [ip_address] executing command
*** [err :: ip_address] /opt/ruby/bin/ruby /opt/ruby/bin/rake assets:precompile:nondigest RAILS_ENV=production RAILS_GROUPS=assets

I've tried solutions here for trying to compile assets: http://lassebunk.dk/2011/09/03/getting-your-assets-to-work-when-upgrading-to-rails-3-1/

And Here: http://railsmonkey.net/2011/08/deploying-rails-3-1-applications-with-capistrano/

And here: http://dev.af83.com/2011/09/30/capistrano-rails-3-1-assets-can-be-tricky.html

Here is my deploy.rb :

require "bundler/capistrano"
load 'deploy/assets'

set :default_environment, {
 'PATH' => "/opt/ruby/bin/:$PATH"
}

set :application, "tomahawk"
set :repository,  "repo_goes_here"
set :deploy_to, "/home/deploy/#{application}"
set :rails_env, 'production'
set :branch, "master"

set :scm, :git
set :user, "deploy"
set :runner, "deploy"
set :use_sudo, true

role :web, "my_ip"                         
role :app, "my_ip"                        
role :db,  "my_ip", :primary => true 

set :normalize_asset_timestamps, false
after "deploy", "deploy:cleanup"

namespace :deploy do
    desc "Restarting mod_rails with restart.txt"
    task :restart, :roles => :app, :except => { :no_release => true } do
        run "touch #{current_path}/tmp/restart.txt"
    end

    [:start, :stop].each do |t|
        desc "#{t} task is a no-op with mod_rails"
        task t, :roles => :domain do ; end
    end
end

task :after_update_code do  
run "ln -nfs #{deploy_to}/shared/config/database.yml #{release_path}/config/database.yml"
end
like image 334
fatfrog Avatar asked Feb 08 '12 22:02

fatfrog


2 Answers

first don't forget to add the gem below

group :production do
 gem 'therubyracer'
 gem 'execjs'
end

then in your cap file just add this line in your after_update_code

run "cd #{release_path}; rake assets:precompile RAILS_ENV=production "

this worked fine for me ;)

cheers,

Gregory HORION

like image 109
metakungfu Avatar answered Nov 08 '22 13:11

metakungfu


I have the same problem. I have added this to my deploy.rb (for adding option '--trace'):

namespace :deploy do
  namespace :assets do
    task :precompile, :roles => :web, :except => { :no_release => true } do
      run "cd #{current_path} && #{rake} RAILS_ENV=#{rails_env} RAILS_GROUPS=assets assets:precompile --trace"
    end
  end
end

And error seems to be just notice :

*** [err :: my-server] ** Invoke assets:precompile (first_time)
...
like image 20
barbacan Avatar answered Nov 08 '22 14:11

barbacan