所以,问题不在于少见的,到目前为止我已经收集的问题负载关于它的了,不过,没有能够解决这个我自己Capistrano的+ sidekiq /无法挑环境变量
我有以下任务:
namespace :sidekiq do
task :start do
on roles(:app), in: :sequence, wait: 5 do
within release_path do
as :deploy do
with rails_env: fetch(:rails_env) do
execute :bundle, "exec sidekiq -e production -C ./config/sidekiq.yml -L ./log/sidekiq.log -d"
end
end
end
end
end
end
任务正在内namespace :deploy do ... end
主deploy.rb文件
由于我的数据库creds'在〜/ .profile中,sidekiq不能存储在远程计算机上称为运行的东西(我试图把这些环境变量〜/ .bashrc等等......可能已经存在或在发现的问题中命名的任何点文件......没有任何工作)。我几乎可以做任何事情。
显然,如果我在远程计算机上运行_very_相同的命令,而不是通过capistrano,那么一切正常。我结束了这个可怜的一个:
task :start do
run_locally do
%x(ssh [email protected]#{fetch(:application)} 'cd /var/www/#{fetch(:application)}/current && /home/xx/.rvm/bin/rvm 2.4.0 do bundle exec sidekiq -e production -C /var/www/#{fetch(:application)}/current/config/sidekiq.yaml -L /var/www/#{fetch(:application)}/current/log/sidekiq.log -d')
end
end
这就是说,如果错误的声音对一些谁使用常规execute :bundle, '...sidekiq startup cmd...'
没有这种问题明显;感谢一个大型的很多提前任何帮助
最佳
您正在运行什么样的服务器? – DevJem
我猜没有什么奇怪的,ubuntu 16.04 – Ben