我刚刚将 Capistrano 从 v2 升级到 v3.1。
我已经重新编写了我的任务,其中包括运行一个 shell 脚本来重新启动 NGINX 等等。要重新启动 NGINX,我必须运行sudo
导致错误的原因:
抱歉,您必须有 TTY 才能运行 sudo
在 Capistrano 2 中,为了解决这个问题,我添加到我的 Capfile 中:
default_run_options[:pty] = true
Capistrano v3 的等价物是什么?
我的deploy.rb
文件如下所示:
# config valid only for Capistrano 3.1
lock '3.1.0'
set :application, 'APP_NAME'
namespace :deploy do
desc 'Restart NGINX'
task :restart do
on roles(:app), in: :sequence, wait: 5 do
execute :sudo, "./restart.sh"
end
end
end