ho corse bundle update
e aggiornato sprockets
a 3.0.0.Capistrano 3 + Pignoni 3 + Rails 4.2.1 non verrà distribuito?
Quando cerco di distribuire via Capistrano 3 ottengo il seguente errore:
INFO [e54ac5ca] Running /usr/bin/env cp /var/www/testapp/releases/20150414002210/public/assets/manifest* /var/www/testapp/releases/20150414002210/assets_manifest_backup as [email protected]
DEBUG [e54ac5ca] Command: cd /var/www/testapp/releases/20150414002210 && /usr/bin/env cp /var/www/testapp/releases/20150414002210/public/assets/manifest* /var/www/testapp/releases/20150414002210/assets_manifest_backup
DEBUG [e54ac5ca] cp: cannot stat ‘/var/www/testapp/releases/20150414002210/public/assets/manifest*’
DEBUG [e54ac5ca] : No such file or directory
DEBUG [d2c5a990] cp: cannot stat ‘/var/www/testapp/releases/20150414002210/public/assets/manifest*’
DEBUG [d2c5a990] : No such file or directory
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as [email protected]: cp exit status: 1
cp stdout: Nothing written
cp stderr: cp: cannot stat ‘/var/www/testapp/releases/20150414002210/public/assets/manifest*’: No such file or directory
/Users/HomeHome/.rvm/gems/ruby-2.1.3/gems/sshkit-1.7.1/lib/sshkit/runners/parallel.rb:16:in `rescue in block (2 levels) in execute'
/Users/HomeHome/.rvm/gems/ruby-2.1.3/gems/sshkit-1.7.1/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute'
SSHKit::Command::Failed: cp exit status: 1
cp stdout: Nothing written
cp stderr: cp: cannot stat ‘/var/www/testapp/releases/20150414002210/public/assets/manifest*’: No such file or directory
/Users/HomeHome/.rvm/gems/ruby-2.1.3/gems/sshkit-1.7.1/lib/sshkit/command.rb:95:in `exit_status='
/Users/HomeHome/.rvm/gems/ruby-2.1.3/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.rb:179:in `block in _execute'
/Users/HomeHome/.rvm/gems/ruby-2.1.3/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.rb:133:in `tap'
/Users/HomeHome/.rvm/gems/ruby-2.1.3/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.rb:133:in `_execute'
/Users/HomeHome/.rvm/gems/ruby-2.1.3/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.rb:66:in `execute'
/Users/HomeHome/.rvm/gems/ruby-2.1.3/gems/capistrano-rails-1.1.2/lib/capistrano/tasks/assets.rake:68:in `block (5 levels) in <top (required)>'
/Users/HomeHome/.rvm/gems/ruby-2.1.3/gems/sshkit-1.7.1/lib/sshkit/backends/abstract.rb:77:in `within'
/Users/HomeHome/.rvm/gems/ruby-2.1.3/gems/capistrano-rails-1.1.2/lib/capistrano/tasks/assets.rake:67:in `block (4 levels) in <top (required)>'
/Users/HomeHome/.rvm/gems/ruby-2.1.3/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.rb:54:in `instance_exec'
/Users/HomeHome/.rvm/gems/ruby-2.1.3/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.rb:54:in `run'
/Users/HomeHome/.rvm/gems/ruby-2.1.3/gems/sshkit-1.7.1/lib/sshkit/runners/parallel.rb:13:in `block (2 levels) in execute'
Tasks: TOP => deploy:assets:backup_manifest
(See full trace by running task with --trace)
The deploy has failed with an error: #<SSHKit::Runner::ExecuteError: Exception while executing as [email protected]: cp exit status: 1
cp stdout: Nothing written
cp stderr: cp: cannot stat ‘/var/www/testapp/releases/20150414002210/public/assets/manifest*’: No such file or directory
Ho guardato intorno per le persone forse hanno gli stessi problemi e sembra che non ci sono problemi o commenti su nessuna parte ...
Onestamente non sono nemmeno sicuro di come sprockets
, sprockets-rails
siano correlati alle guide. Per me è tutto abbastanza confuso ... ad esempio, il valore predefinitoche viene fornito con una nuova app Rails 4.2.1
dice che le ruote dentate 3.0.0 sono consentite in Gemfile.lock
, ma quando si passa alla guida di aggiornamento 2-> 3, mostra che //= include
è stato rimosso, ma è proprio lì nel file application.js
.
Così, forse mi manca qualcosa, ma io non sono molto sicuro come risolvere questo.
In realtà non c'è bisogno di precompilare le attività a livello locale e impegnarsi loro di repository in seguito. È un bug, e i ragazzi di capistrano ci stanno lavorando proprio ora: https://github.com/capistrano/rails/pull/112 e https://github.com/capistrano/rails/issues/111 in ogni caso , pollice in su per una risposta così dettagliata! –
Oh, belle informazioni, grazie. Quando si distribuisce con capistrano, preferisco sempre una strategia di distribuzione che utilizza un ramo_deploy_, in modo che le "risorse compilate" non inquinino il tuo _master_. Inoltre, il più delle volte ti stai distribuendo in un cluster di server, e trovo inefficiente compilarli ancora e ancora su ogni server in cui ti schieri. Inoltre, precompilarli localmente rende più semplice automatizzare (all'interno dell'attività di distribuzione cap) caricandoli su un CDN. – tompave
Per espandere il commento da @mid, ciò che è successo è che il pignone 3.0.0 [ha introdotto una modifica] (https://github.com/rails/sprockets/commit/ce6508e8540f829c6221afa39fdf718e4dded096) dove ha rinominato il file manifest da manifest.json a .sprockets-manifest.json. Stiamo aggiornando capistrano-rails per verificare la presenza di entrambi i nomi di file e utilizzare quello che trova. –