質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

Q&A

解決済

1回答

1525閲覧

bundle exec cap production deploy がエラーになる

denisov

総合スコア6

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

0グッド

0クリップ

投稿2021/05/13 23:19

編集2021/05/14 22:25

□解決したいこと

いつもお世話になっております。

EC2にデプロイを行なった際に、途中でエラーが生じました。

ruby

1開発中のアプリのディレクトリ % bundle exec cap production deploy

を実行したら

ruby

1** DEPLOY FAILED

となりました。当該エラーを解決したくご意見いただけると幸いです。

環境

ruby 2.6.5

'rails', '~> 6.0.0'

'mysql2', '0.5.3'

unicorn (5.4.1)

capistrano (3.16.0)

capistrano-bundler (2.0.1)

capistrano-rails (1.6.1)

capistrano-rbenv (2.2.0)

●経緯

一度、EC2のデプロイは行なっております。

二度目のデプロイとなりますが、その際に画像投稿機能をactive_storageからcarrierwaveに変更を行いました。

その際、どうしてもテスト環境のマイグレーションがうまくいかず、

database.ymlを

ruby

1test: 2 <<: *default 3 database: archtips_test 4#以下に変更 5test: 6 <<: *default 7 database: testarchtips_test

と変更しました。

しかし、表題のようにbundle exec cap production deploy でEC2にデプロイを行なった際にエラーが発生したという経緯となります。

なお、以下のエラー本文ですがだいぶ長かったので、エラーの内容を示していると思われる箇所を抜粋しております。初心者の感覚での抜粋ですので、記載して欲しい情報等ございましたらご指示いただきたくお願い申し上げます。

以下、エラーと思われる部分の抜粋

ruby

1% bundle exec cap production deploy 2#<省略> 300:32 deploy:assets:precompile 4 01 $HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile 5 01 rake aborted! 6 01 NoMethodError: undefined method `active_storage' for #<Rails::Application::… 7#<省略> 8#<Thread:0x00007f80631acd78@/Users/taniguroarata/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true): 9Traceback (most recent call last): 10#<省略> 11/Users/taniguroarata/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/command.rb:97:in `exit_status=': rake exit status: 1 (SSHKit::Command::Failed) 12rake stdout: Nothing written 13rake stderr: rake aborted! 14NoMethodError: undefined method `active_storage' for #<Rails::Application::Configuration:0x00000000040b1db0> 15/var/www/archtips/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/railtie/configuration.rb:96:in `method_missing' 16#<省略> 17/Users/taniguroarata/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as ec2-user@3.139.39.218: rake exit status: 1 (SSHKit::Runner::ExecuteError) 18rake stdout: Nothing written 19rake stderr: rake aborted! 20NoMethodError: undefined method `active_storage' for #<Rails::Application::Configuration:0x00000000040b1db0> 21/var/www/archtips/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/railtie/configuration.rb:96:in `method_missing' 22#<省略> 23Tasks: TOP => environment 24(See full trace by running task with --trace) 25(Backtrace restricted to imported tasks) 26cap aborted! 27SSHKit::Runner::ExecuteError: Exception while executing as ec2-user@3.139.39.218: rake exit status: 1 28rake stdout: Nothing written 29rake stderr: rake aborted! 30NoMethodError: undefined method `active_storage' for #<Rails::Application::Configuration:0x00000000040b1db0> 31#<省略> 32Caused by: 33SSHKit::Command::Failed: rake exit status: 1 34rake stdout: Nothing written 35rake stderr: rake aborted! 36NoMethodError: undefined method `active_storage' for #<Rails::Application::Configuration:0x00000000040b1db0> 37/var/www/archtips/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/railtie/configuration.rb:96:in `method_missing' 38#<省略> 39(See full trace by running task with --trace) 40The deploy has failed with an error: Exception while executing as ec2-user@3.139.39.218: rake exit status: 1 41rake stdout: Nothing written 42rake stderr: rake aborted! 43NoMethodError: undefined method `active_storage' for #<Rails::Application::Configuration:0x00000000040b1db0> 44/var/www/archtips/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/railtie/configuration.rb:96:in `method_missing' 45#<省略> 46** DEPLOY FAILED 47** Refer to log/capistrano.log for details. Here are the last 20 lines: 48/var/www/archtips/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/initializable.rb:60:in `run_initializers' 49 50/var/www/archtips/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/application.rb:363:in `initialize!' 51 52/var/www/archtips/releases/20210513225511/config/environment.rb:5:in `<main>' 53 54/var/www/archtips/shared/bundle/ruby/2.6.0/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' 55 56/var/www/archtips/shared/bundle/ruby/2.6.0/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' 57 58/var/www/archtips/shared/bundle/ruby/2.6.0/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' 59 60/var/www/archtips/shared/bundle/ruby/2.6.0/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' 61 62/var/www/archtips/shared/bundle/ruby/2.6.0/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' 63 64/var/www/archtips/shared/bundle/ruby/2.6.0/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:34:in `require' 65 66/var/www/archtips/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/dependencies.rb:324:in `block in require' 67 68/var/www/archtips/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/dependencies.rb:291:in `load_dependency' 69 70/var/www/archtips/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/dependencies.rb:324:in `require' 71 72/var/www/archtips/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/application.rb:339:in `require_environment!' 73 74/var/www/archtips/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/application.rb:523:in `block in run_tasks_blocks' 75 76/var/www/archtips/shared/bundle/ruby/2.6.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/task.rb:61:in `block (2 levels) in define' 77 78/var/www/archtips/shared/bundle/ruby/2.6.0/gems/rake-13.0.3/exe/rake:27:in `<top (required)>' 79 80/home/ec2-user/.rbenv/versions/2.6.5/bin/bundle:23:in `load' 81 82/home/ec2-user/.rbenv/versions/2.6.5/bin/bundle:23:in `<main>' 83 DEBUG [71e08ab9] Tasks: TOP => environment 84 85 DEBUG [71e08ab9] (See full trace by running task with --trace)

□仮説及び調べたこと

エラーの中にあるように(undefined method `active_storage' for #<Rails::Application::…)

画像投稿機能をactivestorageからcarrierwaveに変更を行いましたが、EC2ではactive_stogrageを呼び出そうとしております。

おそらくproductionデータベースが更新されていないためかとproduction environmentのデータベースをdrop ⇒ createしようと思いました。

ruby

1RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop 2 3rails db:create RAILS_ENV=production

production environmentのデータベースの再構築は可能でしたが、再度テストを実行しましても結果は変わりませんでした。

参考

https://qiita.com/Esfahan/items/75ade0233fe02ab04381

deploy:assets:precompile でエラーが発生しているので当該部分に注目して調べてみました。未熟ながらアセットコンパイルから調べてみました。

アセットコンパイル:アセットファイルをコンパイルすること

アセットファイル:画像やcssを管理するファイル

コンパイル   :アセットファイルを圧縮し転送すること

アセットコンパイルがうまくいかないと本番環境でビューが崩れる恐れがある。

おそらくアセットコンパイルが直接的な原因ではないと思われます。

SSHKit::Command::Failed: rake exit status: 1 に着目

exitstatusはエラーの種類であり、原因究明の手がかりは得られませんでした。

以上、私なりに調べましたが、他に原因と考えられる箇所がありましたら、教えていただきたくお願い申しあげます。

最終的にはEC2インスタンスを再構築し設定し直す方向も検討しています。その点につきましてもご意見いただけると幸いです。

□結果

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

解決しました。非常に単純な見落としでした。

production.rb

config.active_storage.service = :amazon

削除したつもりであった上記のコードが残っていたことが原因でした。
大変お騒がせしました。
ありがとうございます。

投稿2021/05/15 05:01

denisov

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問