You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After upgrading an application from Rails 6.1 to Rails 7.0 the Capistrano deployment fails.
The deployment has always worked (for years) and the application still works fine in development / test environments.
This is the error when running cap production deploy:
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as [email protected]: rake exit status: 1
rake stdout: Nothing written
rake stderr: rake aborted!
Sprockets::FileNotFound: couldn't find file 'emojionearea/dist/emojionearea' with type 'text/css'
Checked in these paths:
/home/myapp/www/myapp/releases/20220928123230/app/assets/config
/home/myapp/www/myapp/releases/20220928123230/app/assets/images
/home/myapp/www/myapp/releases/20220928123230/app/assets/javascripts
/home/myapp/www/myapp/releases/20220928123230/app/assets/stylesheets
/home/myapp/www/myapp/releases/20220928123230/vendor/assets/javascripts
/home/myapp/www/myapp/releases/20220928123230/vendor/assets/stylesheets
/home/myapp/www/myapp/shared/bundle/ruby/3.0.0/gems/jquery-rails-4.5.0/vendor/assets/javascripts
/home/myapp/www/myapp/shared/bundle/ruby/3.0.0/gems/actiontext-7.0.4/app/assets/javascripts
/home/myapp/www/myapp/shared/bundle/ruby/3.0.0/gems/actiontext-7.0.4/app/assets/stylesheets
/home/myapp/www/myapp/shared/bundle/ruby/3.0.0/gems/actioncable-7.0.4/app/assets/javascripts
/home/myapp/www/myapp/shared/bundle/ruby/3.0.0/gems/activestorage-7.0.4/app/assets/javascripts
/home/myapp/www/myapp/shared/bundle/ruby/3.0.0/gems/actionview-7.0.4/lib/assets/compiled
/home/myapp/www/myapp/releases/20220928123230/node_modules
/home/myapp/www/myapp/releases/20220928123230/app/assets/stylesheets/application.scss:13
/home/myapp/www/myapp/shared/bundle/ruby/3.0.0/gems/sprockets-4.1.1/lib/sprockets/resolve.rb:62:in `resolve!'
...
After some investigation on the server I see that:
the folder /home/myapp/www/myapp/releases/20220928123230/ is present
the folder /home/myapp/www/myapp/releases/20220928123230/node_modules is not present (and this is where the file emojionearea/dist/emojionearea should be found)
This probably means that the problem is not Sprockets (which is looking in the right path) but the fact that node_modules is not generated during the deploy. So, why the command yarn install is not executed during the deploy? Everything used to work before the upgrade to Rails 7.
Expected behavior
The task deploy:assets:precompile should first download the Yarn modules to the node_modules folder on the server, then run rake assets:precompile.
Actual behavior
When you deploy, assets:precompile raises an exception Sprockets::FileNotFound.
Steps to reproduce
After upgrading an application from Rails 6.1 to Rails 7.0 the Capistrano deployment fails.
The deployment has always worked (for years) and the application still works fine in development / test environments.
This is the error when running
cap production deploy
:After some investigation on the server I see that:
/home/myapp/www/myapp/releases/20220928123230/
is present/home/myapp/www/myapp/releases/20220928123230/node_modules
is not present (and this is where the fileemojionearea/dist/emojionearea
should be found)This probably means that the problem is not Sprockets (which is looking in the right path) but the fact that
node_modules
is not generated during the deploy. So, why the commandyarn install
is not executed during the deploy? Everything used to work before the upgrade to Rails 7.Expected behavior
The task
deploy:assets:precompile
should first download the Yarn modules to thenode_modules
folder on the server, then runrake assets:precompile
.Actual behavior
When you deploy,
assets:precompile
raises an exceptionSprockets::FileNotFound
.System configuration
Rails 7.0.4
capistrano 3.17.1
capistrano-rails 1.6.2
The text was updated successfully, but these errors were encountered: