Capistrano deploy:assets:restore_manifest Rails assets manifest file (or backup file) not found

和自甴很熟 提交于 2020-06-27 07:48:30

问题


TLDR;

I have been deploying with Capistrano for over a year and able to rollback and now all of a sudden I cannot rollback saying it cannot find the rake asset file


Problem

Capistrano Rollback is failing complaining that it cannot find the rake asset manifest which I validated is not there. What creates this and why would it just stop being created?

I have been pulling my hair out for days over this and am at a point to figure out how to hack out that portion of the rollback and manually recompiling the assets.


Rollback console output

    rvm 1.27.0 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
    ruby-2.3.3
    ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]
    00:00 deploy:shutdown_god
          01 sudo service god stop
        ✔ 01 quotr@SpottingQuotes.ca 1.404s
    00:01 deploy:fix_tmp_permissions
          01 sudo chown -R quotr:app /home/quotr/app/releases
        ✔ 01 quotr@SpottingQuotes.ca 3.636s
    removing existing local assets
    00:05 git:wrapper
          01 mkdir -p /tmp
        ✔ 01 quotr@SpottingQuotes.ca 0.214s
          Uploading /tmp/git-ssh-Quotr-staging-brandon.sh 100.0%
          02 chmod 700 /tmp/git-ssh-Quotr-staging-brandon.sh
        ✔ 02 quotr@SpottingQuotes.ca 0.184s
    00:05 git:check
          01 git ls-remote git@github.com:XXChester/quotr.git HEAD
          01 2c552c143313ae30b3db06372d640ebe3987b1e9   HEAD
        ✔ 01 quotr@SpottingQuotes.ca 0.708s
    00:06 deploy:check:directories
          01 mkdir -p /home/quotr/app/shared /home/quotr/app/releases
        ✔ 01 quotr@SpottingQuotes.ca 0.146s
    00:06 deploy:check:linked_dirs
          01 mkdir -p /home/quotr/app/shared/log /home/quotr/app/shared/public/system /home/quotr/app/s…
        ✔ 01 quotr@SpottingQuotes.ca 0.194s
    00:09 deploy:assets:prepare
          01 rake assets:clean
          01 version: e724e4e
          01 Loaded /home/brandon/code/quotr/app/jobs/bid_top_up_job.rb
          01 Loaded /home/brandon/code/quotr/app/jobs/base_job.rb
          01 Loaded /home/brandon/code/quotr/app/jobs/notification_job.rb
          01 Loaded /home/brandon/code/quotr/app/jobs/close_project_job.rb
        ✔ 01 brandon@localhost 3.671s
          02 rake assets:precompile
          02 I, [2018-05-22T12:30:07.515992 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.535002 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.536569 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.536935 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.538802 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.542173 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.545048 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.545798 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.546547 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.547340 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.548304 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.548384 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.549593 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.550404 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.551790 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.560021 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.561012 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.561902 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.589660 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.590197 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.591274 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.592175 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.592975 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.593805 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.594635 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.595481 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.596272 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.597071 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.597814 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.598977 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.599904 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.600863 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.601763 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.602734 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.603642 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.604583 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.605939 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.606984 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.607987 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.608859 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.609703 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.610610 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.611455 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.612825 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.614628 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.615325 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.615970 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.788390 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.788633 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.808114 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.808206 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.822875 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.822966 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.824946 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.825015 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.834034 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.834149 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 I, [2018-05-22T12:30:07.839802 #16956]  INFO -- : Writing /home/brandon/code/quotr/public/…
          02 version: e724e4e
          02 Loaded /home/brandon/code/quotr/app/jobs/bid_top_up_job.rb
          02 Loaded /home/brandon/code/quotr/app/jobs/base_job.rb
          02 Loaded /home/brandon/code/quotr/app/jobs/notification_job.rb
          02 Loaded /home/brandon/code/quotr/app/jobs/close_project_job.rb
        ✔ 02 brandon@localhost 4.845s
    00:17 deploy:terminate_god
          01 sudo service god terminate
          01 Terminating god
          01
          01 Stopped all watches
          01
          01 Stopped god
          01 Finished
        ✔ 01 quotr@SpottingQuotes.ca 0.286s
    00:17 deploy:assets:cleanup
          01 rm -rf
        ✔ 01 brandon@localhost 0.001s
    00:18 deploy:assets:restore_manifest
          WARN  Rails assets manifest file (or backup file) not found.
    (Backtrace restricted to imported tasks)
    cap aborted!
    SSHKit::Runner::ExecuteError: Exception while executing on host SpottingQuotes.ca: Rails assets manifest file (or backup file) not found.


    Caused by:
    Capistrano::FileNotFound: Rails assets manifest file (or backup file) not found.

    Tasks: TOP => deploy:assets:restore_manifest
    (See full trace by running task with --trace)

Doctor Output

rvm 1.27.0 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
ruby-2.3.3
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]

Environment

Ruby     ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]
Rubygems 2.5.2
Bundler  N/A
Command  /home/brandon/.rvm/gems/ruby-2.3.3/bin/cap staging doctor

Gems

capistrano                  3.10.1 (update available)
airbrussh                   1.3.0
rake                        12.3.1
sshkit                      1.16.0 (update available)
net-ssh                     4.2.0
capistrano-bundler          1.3.0
capistrano-local-precompile 1.1.1
capistrano-npm              1.0.2
capistrano-rails            1.3.1
capistrano-rvm              0.1.2

Variables

:application                 "Quotr"
:assets_dir                  "/home/quotrapp/shared/public/assets"
:assets_prefix               "assets"
:assets_role                 "web"
:assets_roles                [:web, :app, :db]
:branch                      "DEV-484-capistrano-cannot-rollback"
:bundle_bins                 ["gem", "rake", "rails"]
:bundle_binstubs             nil
:bundle_clean_options        ""
:bundle_env_variables        {}
:bundle_flags                "--deployment --quiet"
:bundle_gemfile              nil
:bundle_jobs                 nil
:bundle_path                 #<Pathname:/home/quotr/app/shared/bundle>
:bundle_roles                :all
:bundle_servers              [#
<Capistrano::Configuration::Server:0x00000002e6d528 @keys=[], @local=false, @user=nil, @hostname="SpottingQuotes.ca", @port=nil, @properties=#<Capistrano::Configuration::Server::Properties:0x00000002e6d258 @properties={:primary=>true}, @roles=#<Set: {:web, :db}>>>]
:bundle_without              "development test"
:conditionally_migrate       false
:default_env                 {}
:deploy_to                   "/home/quotr/app"
:deploy_via                  :copy
:format                      :airbrussh
:git_environmental_variables {:git_askpass=>"/bin/echo", :git_ssh=>"/tmp/git-ssh-Quotr-staging-brandon.sh"}
:git_shallow_clone           false
:git_wrapper_path            "/tmp/git-ssh-Quotr-staging-brandon.sh"
:keep_releases               5
:linked_dirs                 ["log", "public/system", "public/assets"]
:local_user                  "brandon"
:log_level                   :debug
:maintenance_template_path   "public/503.html"
:migration_role              :db
:migration_servers           #<Capistrano::Configuration::Server:0x00000002e6d528 @keys=[], @local=false, @user=nil, @hostname="SpottingQuotes.ca", @port=nil, @properties=#<Capistrano::Configuration::Server::Properties:0x00000002e6d258 @properties={:primary=>true}, @roles=#<Set: {:web, :db}>>>
:npm_flags                   ["--production", "--silent", "--no-progress"]
:npm_prune_flags             "--production"
:npm_roles                   :all
:packs_dir                   "public/packs"
:precompile_env              "production"
:pty                         false
:rails_env                   :production
:repo_url                    "git@github.com:XXChester/quotr.git"
:rsync_cmd                   "rsync -av --delete"
:rvm_map_bins                ["gem", "rake", "ruby", "bundle"]
:rvm_path                    "~/.rvm"
:rvm_ruby_version            "2.3.3"
:rvm_type                    :auto
:ssh_options                 {:forward_agent=>true, :keys=>["/home/brandon/Documents/Google Drive/Quotr/hosting/test-server.pem"], :user=>"quotr", :keepalive=>true}
:stage                       :staging
:tmp_dir                     "/tmp"
:use_sudo                    false
:user                        "quotr"

:deploy_via is not a recognized Capistrano setting (/home/brandon/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/delegate.rb:83)
:maintenance_template_path is not a recognized Capistrano setting (/home/brandon/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/delegate.rb:83)
:use_sudo is not a recognized Capistrano setting (/home/brandon/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/delegate.rb:83)
:user is not a recognized Capistrano setting (/home/brandon/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/delegate.rb:83)

Servers (1)

SpottingQuotes.ca [:web, :db] { :primary => true }

I saw some recommendations of manually creating the file but this seems just blatantly wrong.

What I am looking for?

I am hoping someone can see a smoking gun or experienced them their self and remembers what it means, or someone can point me in the direction of the answer. I'd like to not hack the solution but if it comes to it (it's very close to be), someone to point me in the direction of how to bypass this step, I already know how to do a manual recompile.

Thanks


回答1:


I managed to shut off the default behaviour via:

Rake::Task["deploy:assets:restore_manifest"].clear_actions

Then I added a manual recompile to the end of the rollback process via:

before 'deploy:finishing_rollback', 'deploy:pre_start_precompile'

My manual recompile which we were already doing for deployments looks like this;

task :pre_start_precompile do
    on roles(:db) do
      with rails_env: "#{fetch(:stage)}" do
        path_to_bundler = "/home/quotr/.rvm/wrappers/ruby-2.3.3/bundle"
        execute "cd #{release_path}; RAILS_ENV=production #{path_to_bundler} exec rake assets:precompile"
      end
    end
  end

I hope this helps someone else; what a nightmare.



来源:https://stackoverflow.com/questions/50472644/capistrano-deployassetsrestore-manifest-rails-assets-manifest-file-or-backup

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!