自分にやさしく学ぶプログラミング

プログラミング学習記録、備忘録

capistranoでデプロイしたらpumaを再起動するために必要だったこと

capistranoでデプロイが完了したらそのままpumaを再起動して欲しいんですが、gemや設定の追加が必要だったので、備忘録として書き残しておきます。

ご注意!!

ここに書いてあることは全てcapistrano-pumaのREADMEに書いてあります! ただ、capistrano関連の設定が個人的にややこしくて正解に行き着くのに時間がかかったので、今後のために今回の環境でうまく行った手順を控えておこうというのが、この記事の目的です。 これからデプロイされる方は、本記事の記述はあくまで参考程度に留めておいていただければと思います🙇‍♂️

実行環境

前提

とりあえずcapistranoのデフォルトのタスクは全てエラーなく完了する状態になっていることとしてます。

必要だったこと

capistrano-pumaをインストール

Gemfileに下記を追加

  # group: :development ブロック内
  gem "capistrano3-puma", require: false 

bundle installも忘れずに

必要なタスクを追加する

Capfileに下記を追加

require "capistrano/puma"
install_plugin Capistrano::Puma
install_plugin Capistrano::Puma::Daemon

pumaの設定ファイルをサーバーにアップロード

ローカルマシンのターミナル上で下記コマンドを実行

cap production puma:config

これによりデプロイ先にshared/puma.rbが生成されます。
(ここよくわかっていなくて、再確認しようと思って試しにshared/puma.rbを消してからデプロイしてみたのですが、デプロイ時に自動的にshared/puma.rbが生成され、特に問題なくデプロイできてしまいました。まあcapistrano-pumaのGitHubこれしないとpumaが動かないよと書いてあるので、そういうものなんだと思っています・・・)

capistranoの共有ディレクトリ設定を追加

config/deploy.rbに下記を追加

append :linked_dirs, "log", "tmp/pids", "tmp/sockets"

append :linked_dirsにより、指定したフォルダがsharedに生成され、各リリースバージョン間で共有されるようになります。

以上の設定で、デプロイ終了後にpuma:restartが走ってpumaが再起動されるようになりました🙌