自定义capistrano任务挂起

时间:2018-09-07 14:15:53

标签: ruby-on-rails capistrano

我有一个自定义的Capistrano任务。我需要在bundler install之前运行它,以确保mini_racer正确安装。定义如下:

# this will update gcc to a 4.8+, a version usable by mini_racer
task :enable_devtools_2 do
  on roles(:web) do
    execute :scl, :enable, "devtoolset-2", :bash
    execute :gcc, "-v"
  end
end

before "bundler:install", "enable_devtools_2"

但是,当我运行deploy命令时,执行此步骤时它将挂起:

00:22 enable_devtools_2
      01 scl enable devtoolset-2 bash

我应该如何进行调试?当然,当我手动ssh进入框并运行命令时,此方法有效。


编辑:当我转到Capistrano文档Why does something work in my SSH session, but not in Capistrano?时,可以运行一些自定义查询:

task :query_interactive do
  on roles(:web) do
    info capture("[[ $- == *i* ]] && echo 'Interactive' || echo 'Not interactive'")
  end
end
task :query_login do
  on roles(:web) do
    info capture("shopt -q login_shell && echo 'Login shell' || echo 'Not login shell'")
  end
end

我定义了这些,运行了它们,并得到以下输出。当然,我还不知道该怎么办:

% cap staging query_interactive
00:00 query_interactive
      Not interactive
% cap staging query_login
00:00 query_login
      Not login shell

0 个答案:

没有答案