当我部署到服务器前一切都很好.但是,如果我尝试部署到登台服务器,我会收到此错误:
bundler:找不到命令:bin / delayed_job
bundler:找不到命令:bin / delayed_job
file – config / deploy / staging.rb
set :rails_env,'staging' set :eager_load,:true set :unicorn_rack_env,'staging' role :app,%w{deploy@x.x.x.x} role :web,%w{deploy@x.x.x.x} role :db,%w{deploy@x.x.x.x} set :rvm_type,:auto # Defaults to: :auto set :rvm_ruby_version,'2.1.2' set :rails_env,:true role :app,%w{deploy@x.x.x.} role :web,%w{deploy@x.x.x.} role :db,%w{deploy@x.x.x.} set :rvm_type,'2.1.2' set :deploy_to,'/var/www/app' server 'x.x.x',user: 'deploy',roles: %w{web app},port: 222 set :unicorn_pid,->{ "#{deploy_to}/shared/tmp/pids/unicorn.pid" } set :scm,:git set :ssh_options,{ user: 'superman' } set :keep_releases,5
重启延迟工作 –
namespace :delayed_job do def args fetch(:delayed_job_args,"") end def delayed_job_roles fetch(:delayed_job_server_role,:app) end desc 'Stop the delayed_job process' task :stop do on roles(delayed_job_roles) do within release_path do with rails_env: fetch(:rails_env) do execute :bundle,:exec,:'bin/delayed_job',:stop end end end end desc 'Start the delayed_job process' task :start do on roles(delayed_job_roles) do within release_path do with rails_env: fetch(:rails_env) do execute :bundle,args,:start end end end end desc 'Restart the delayed_job process' task :restart do on roles(delayed_job_roles) do within release_path do with rails_env: fetch(:rails_env) do execute :bundle,:restart end end end end end
你能帮我解决一下这个问题吗?提前致谢!
更新1
有关此错误的更多信息:
lib / capistrano / tasks / delayed_job.rake:33执行:bundle,:exec,:’bin / delayed_job’,:restart
解决方法
检查您是否可以在#{deploy_to} / shared / bin /中查看登台服务器上的delayed_job
如果它不存在,请从项目的bin文件夹中将其复制到那里.