Yak shaving logs


My life is just yak shaving.

capistranoのバージョンをあげると ` puma:restart ` タスクが走らなくなった

2017/08/21 #rails #gem #capistrano

By Yusuke Takita


こんにちは。Takitaです。

gemのバージョンがアップがあると勝手にプルリクを作成してくれるdependabotを使っています。capistranoのバージョンがそもそも古かったこともあり、dependabotがcapistranoのバージョンアップのプルリクをあげてくれたのでマージしたところ、デプロイがこけるようになりました。

cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as takita@tackeyy.com: Don't know how to build task 'puma:restart' (see --tasks)

Don't know how to build task 'puma:restart' (see --tasks)

config/deploy.rb

(省略)
after 'deploy:publishing', 'deploy:restart'

namespace :deploy do
  task :restart do
    on roles(:app), in: :sequence, wait: 15 do
      invoke 'puma:restart'
    end
  end
(省略)

capistrano-puma を使用している場合、デプロイが成功した時に capistrano-puma がpumaを再起動してくれますが、そのこと知らずに上記のようなタスクを書いていたため、 capistrano-puma にpumaの再起動を任せることにしました。

config/deploy.rb

(省略)
-after 'deploy:publishing', 'deploy:restart'

namespace :deploy do
-  task :restart do
-    on roles(:app), in: :sequence, wait: 15 do
-      invoke 'puma:restart'
-    end
-  end
-
(省略)

Capfile

+install_plugin Capistrano::Puma

install_plugin Capistrano::Puma を追加することでpumaのデフォルトタスクが利用できるようになり、deploy後のpuma再起動のフックもしてくれます。

https://github.com/seuros/capistrano-puma/blob/master/lib/capistrano/puma.rb#L91
https://github.com/seuros/capistrano-puma/blob/master/lib/capistrano/tasks/puma.rake

これらの修正は以下のコミットで確認できます。

https://github.com/tackeyy/blog/commit/4b771d69e8e73e578fddaeb29a436a40ef8324c9

参考

https://github.com/seuros/capistrano-puma#usage
https://stackoverflow.com/a/39812330/7807559

このエントリーをはてなブックマークに追加

categories


最新記事


tags