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

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

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

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

AWS(Amazon Web Services)

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

Capistrano

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

Q&A

1回答

1043閲覧

Capistranoで自動デプロイができない

tomsuma

総合スコア38

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

AWS(Amazon Web Services)

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

Capistrano

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

0グッド

0クリップ

投稿2020/09/26 23:49

編集2020/09/27 06:36

UnicornやNginxなどの諸々の設定をおえ、

sudo systemctl status mariadb コマンドでdbの起動を確認していたのですが、

% bundle exec cap production deploy

コマンドでのデプロイ時にエラーが出ます。

Caused by: SSHKit::Runner::ExecuteError: Exception while executing as ec2-user@54.249.219.192: rake exit status: 1 rake stdout: Nothing written rake stderr: DEPRECATION WARNING: Including LoggerSilence is deprecated and will be removed in Rails 6.1. Please use `ActiveSupport::LoggerSilence` instead (called from block (2 levels) in require at /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/runtime.rb:74) rake aborted! Mysql2::Error::ConnectionError: Unknown MySQL server host 'db' (2) /var/www/Books/shared/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `connect' ** DEPLOY FAILED ** Refer to log/capistrano.log for details. Here are the last 20 lines:

ゴールとしてはIPアドレスにアクセスできれば満足です。

以前まではこのコマンドでデプロイができ、
IPアドレスにアクセスできたのですが、
今は開くとWe're sorry, but something went wrong.
と出てしまいます。

Dockerfileを入れてからエラーが出るようになったので、Dockerfileが原因かなと思ったのですが、どこを修正すればいいか分からずにいます。

[ec2-user@**** ~]$ rake secret
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

(See full trace by running task with --trace)

[ec2-user@ip**** Books]$ rails db:create RAILS_ENV=production DEPRECATION WARNING: Including LoggerSilence is deprecated and will be removed in Rails 6.1. Please use `ActiveSupport::LoggerSilence` instead (called from <main> at /var/www/Books/config/application.rb:7) Unknown MySQL server host 'db' (2) Couldn't create 'Books_production' database. Please check your configuration. rails aborted! Mysql2::Error::ConnectionError: Unknown MySQL server host 'db' (2)

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

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

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

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

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

guest

回答1

0

Mysql2::Error::ConnectionError: Unknown MySQL server host 'db' (2)

dbという名前のホストに接続しようとして、接続できないと言っています。

sudo systemctl status mariadb

これはローカルで動いているmariadbの状態を見ているのですが、特別な設定なしではdbという名前でローカルのmariadbを名前解決することはできません。
この名前はDockerでdbコンテナを立ち上げた時に設定することが多いので、それを前提にRailsの設定ファイルに記載しているのではないでしょうか。

ローカルのmariadbに接続したいのかdockerコンテナのdbに接続したいのかわかりませんが、前者なら接続先をlocalhostにする必要が、後者ならdockerでdbコンテナを適切に立ち上げる必要があります。

投稿2020/09/27 14:56

yu_1985

総合スコア7588

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問