Reputation: 1
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.
Upvotes: 0
Views: 296
Reputation: 423
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
Upvotes: 1