简体   繁体   中英

Capistrano task deploy:assets:precompile takes an hour

I have a problem when deploing on production, executing environment for assets precompile task takes too long (20 to 60 minutes)

deploy:assets:precompile
      01 ~/.rvm/bin/rvm default do bundle exec rake assets:precompile --trace
      01 do bundle exec rake assets:precompile --trace
      01 Ruby enVironment Manager 1.29.9 (latest) (c) 2009-2017 Michal Papis, P…
      01
      01 ** Invoke assets:precompile (first_time)
      01 ** Invoke assets:environment (first_time)
      01 ** Execute assets:environment
      01 ** Invoke environment (first_time)
      01 ** Execute environment

And it holds on this moment. Strace outputs something like this

 rubygems/request_set/lockfile.rb\331\"rubygems/bundler_version_finder.rb\264rubygems/resolver.rb\270rubygems/path_support.rb\267rubygems/uninstaller.rb\267rubygems/requirement.rb\272rubygems/version_option.rb\331 rubygems/local_remote_options.rb\331 rubygems/source_specific_file.rb\267rubygems/request_set.rb\331#rubygems/core_ext/kernel_require.rb\331 rubygems/core_ext/kernel_warn.rb\277rubygems/core_ext/kernel_gem.rb\264rubygems/platform.rb\271rubygems/uri_formatter.rb\331\"rubygems/install_update_options.rb\266rubygems/name_tuple.rb\262rubygems/errors.rb\265rubygems/util/list.rb\271rubygems/util/licenses.rb\277rubygems/gemcutter_utilities.rb\264rubygems/security.rb\267rubygems/mock_gem_ui.rb\277rubygems/installer_test_case.rb\267rubygems/source_list.rb\273rubygems/command_manager.rb\273rubygems/install_message.rb\331)rubygems/resolver/vendor_specification.rb\3319rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb\331=rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb\331Grubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb\331Mrubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb\3315rubygems/resolver/molinillo/lib/molinillo/resolver.rb\3317rubygems/resolver/molinillo/lib/molinillo/resolution.rb\3317rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb\331Krubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb\3313rubygems/resolver/molinillo/lib/molinillo/errors.rb\331Arubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb\331Irubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb\331Drubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb\331Hrubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb\331Irubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb\331Drubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb\331Rrubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb\331Qrubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb\331Arubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb\3312rubygems/resolver/molinillo/lib/molinillo/state.rb\331,rubygems/resolver/molinillo/lib/molinillo.rb\331\"rubygems/resolver/specification.rb\276rubygems/resolver/molinill"..., 442032982) = 442032982

And htop says than CPU usage is near 100%.

So it seems that problem is somewhere on bundling gems for running environment, but i have no idea how can I deal with it. There's no such problem when i deploy to staging, and running rails conslole on production (which do the same gems loading I guess) doesn't take too much time.

it is not recommended to compile assets on server, you should disable it and compile assets in local and commit assets and then deploy app. Rails guide for local assets compilation

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM