rails how deploy app ruby-on-rails capistrano

ruby on rails - how - No sé cómo crear la tarea ''inicio'' cuando se ejecuta ''cap production deploy'' para capistrano 3.8.0 con Rails



deploy rails app (2)

Intenté desplegar mi sitio de rieles utilizando capistrano. Así que cuando corrí

cap production deploy

Esto es lo que conseguí

(Backtrace restricted to imported tasks) cap aborted! Don''t know how to build task ''start'' (see --tasks) Tasks: TOP => production

Este es mi archivo de tapa

# Load DSL and Setup Up Stages require ''capistrano/setup'' require ''capistrano/deploy'' require ''capistrano/rails'' require ''capistrano/bundler'' require ''capistrano/rvm'' require ''capistrano/puma'' require ''capistrano/scm/git'' install_plugin Capistrano::SCM::Git # Loads custom tasks from `lib/capistrano/tasks'' if you have any defined. Dir.glob(''lib/capistrano/tasks/*.rake'').each { |r| import r }

Este es mi deploy.rb

set :repo_url, ''xxx'' set :application, ''xxx'' set :user, ''yyy'' set :puma_threads, [4, 16] set :puma_workers, 0 set :pty, true set :use_sudo, false set :stages, ["staging", "production"] set :default_stage, "production" set :deploy_via, :remote_cache set :deploy_to, "/home/#{fetch(:user)}/apps/#{fetch(:application)}" set :puma_bind, "unix://#{shared_path}/tmp/sockets/#{fetch(:application)}-puma.sock" set :puma_state, "#{shared_path}/tmp/pids/puma.state" set :puma_pid, "#{shared_path}/tmp/pids/puma.pid" set :puma_access_log, "#{release_path}/log/puma.error.log" set :puma_error_log, "#{release_path}/log/puma.access.log" set :ssh_options, { forward_agent: true, user: fetch(:user), keys: %w(~/.ssh/id_rsa) } set :puma_preload_app, true set :puma_worker_timeout, nil set :puma_init_active_record, true # Change to false when not using ActiveRecord namespace :puma do desc ''Create Directories for Puma Pids and Socket'' task :make_dirs do on roles(:app) do execute "mkdir #{shared_path}/tmp/sockets -p" execute "mkdir #{shared_path}/tmp/pids -p" end end before :start, :make_dirs end namespace :deploy do desc "Make sure local git is in sync with remote." task :check_revision do on roles(:app) do unless `git rev-parse HEAD` == `git rev-parse origin/master` puts "WARNING: HEAD is not the same as origin/master" puts "Run `git push` to sync changes." exit end end end desc ''Initial Deploy'' task :initial do on roles(:app) do before ''deploy:restart'', ''puma:start'' invoke ''deploy'' end end desc ''Restart application'' task :restart do on roles(:app), in: :sequence, wait: 5 do invoke ''puma:restart'' end end before :starting, :check_revision after :finishing, :compile_assets after :finishing, :cleanup end

Así que el código anterior está funcionando antes, pero cuando actualizo mis gemas, ya no puedo implementar mi aplicación.

Entonces, ¿cómo puedo solucionar esto?

¡Gracias!


Agregue install_plugin Capistrano::Puma en su Capfile luego de require ''capistrano/puma'' .

capistrano3-puma mudó a 3.0 hace unos días. Esta línea es necesaria para cargar las tareas puma predeterminadas en esta versión.

Ver https://github.com/seuros/capistrano-puma#usage


Estas dos líneas deberían estar allí en Capfile. Además, estos cambios se realizan en la reciente versión de puma gema ''capistrano3-puma''.

require ''capistrano/puma'' install_plugin Capistrano::Puma # Default puma tasks

Por favor, tenga en cuenta la jerarquía en la que están escritos en archivo de cap. Esto ayuda a cargar las tareas puma en cap. Puedes enumerar las tareas capistrano con cap -T . También busque la tarea relacionada con puma una vez que haya actualizado el archivo de Cap con las dos líneas anteriores.

Para obtener más detalles, consulte https://github.com/seuros/capistrano-puma#usage