はじめに
コメントご指摘の様に、投稿直後にteratailがサーバー落ちしていたため以下サイトにも同様の投稿をしてしまいました。
https://ja.stackoverflow.com/questions/90308/capistrano%e3%81%ae%e5%b0%8e%e5%85%a5%e3%81%a7capistranopumasystemd%e3%81%8cuninitialized-constant%e3%81%ab%e3%81%aa%e3%82%8b%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%8c%e7%99%ba%e7%94%9f%e3%81%99%e3%82%8b
前提
RailsアプリケーションのAWSへのデプロイのため、
https://qiita.com/take18k_tech/items/5710ad9d00ea4c13ce36#63-capistrano
を参考にインフラ環境を構築しています。
●構成
Ruby 2.6.5 + Nginx + Puma
実現したいこと
Capistrano導入中に発生した、
Capistrano::Puma::Systemdに出るuninitialized constantエラーを解決したい。
発生している問題・エラーメッセージ
% bundle exec cap production deploy (Backtrace restricted to imported tasks) cap aborted! NameError: uninitialized constant Capistrano::Puma::Systemd Did you mean? SystemExit /Users/ユーザー/tech_camp/rails/projects/アプリ/Capfile:43:in `<top (required)>' (See full trace by running task with --trace)
該当のソースコード
●使用したGem
ruby
1group :development do 2 # 略 3 # ***** 以下を追加 ***** 4 gem "capistrano", "~> 3.10", require: false 5 gem "capistrano-rails", "~> 1.6", require: false 6 gem 'capistrano-rbenv', '~> 2.2' 7 gem 'capistrano-rbenv-vars', '~> 0.1' 8 gem 'capistrano3-puma' 9 # ***** 以上を追加 ***** 10end
●Gemfile.lock(関係部分)
capistrano (3.17.0) airbrussh (>= 1.0.0) i18n rake (>= 10.0.0) sshkit (>= 1.9.0) capistrano-bundler (2.1.0) capistrano (~> 3.1) capistrano-rails (1.6.2) capistrano (~> 3.1) capistrano-bundler (>= 1.1, < 3) capistrano-rbenv (2.2.0) capistrano (~> 3.1) sshkit (~> 1.3) capistrano-rbenv-vars (0.1.0) capistrano (>= 3.0) capistrano-rbenv (>= 2.0) capistrano3-puma (3.1.1) capistrano (~> 3.7) capistrano-bundler
●問題の発生しているソースコード(Capfile)
ruby
1・・・ 2 3require 'capistrano/rbenv' 4require 'capistrano/bundler' 5require 'capistrano/rails/assets' 6require 'capistrano/rails/migrations' 7require 'capistrano/puma' 8install_plugin Capistrano::Puma 9install_plugin Capistrano::Puma::Systemd 10install_plugin Capistrano::Puma::Nginx 11 12# Load custom tasks from `lib/capistrano/tasks` if you have any defined 13Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
●エラーが発生するコマンド
% bundle exec cap production deploy
ちなみに本番環境でPumaは今回が初回起動で、
EC2上の/etc/systemd/system/puma_アプリ名_production.serviceはまだ作成されておりません。
試したこと
公式のGitHubを再読し、プログラムと照らし合わせてみましたが特に問題を発見できませんでした。
https://github.com/seuros/capistrano-puma
Uninitializeということなので、「install_plugin Capistrano::Puma::Systemd」自体に問題がありそうですが、前提条件としてGemの依存関係などに問題があったりするのでしょうか?
Systemd自体に知識がなく、そもそもエラーの原因が究明できておりません。
どなたかご教示頂けますでしょうか?
補足
以前に同様の質問が上がっておりましたが、回答がなかったため質問させて頂きました。
回答1件
あなたの回答
tips
プレビュー