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

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

新規登録して質問してみよう
ただいま回答率
85.47%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails 6

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Amazon EC2

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

Q&A

解決済

1回答

631閲覧

bundle exec cap production deployで自動デプロイしようとするとMysql2::Error::ConnectionError...

jin_707502345

総合スコア8

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails 6

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Amazon EC2

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

0グッド

0クリップ

投稿2020/10/23 12:50

前提・実現したいこと

$ bundle exec cap production deployでデプロイしたい

ここに質問の内容を詳しく書いてください。
railsでアプリケーションを作っています。アプリにEC2を導入しその後DockerとCircleCIを導入しました。
導入した後に自動デプロイするとmysqlエラーになりました。

発生している問題・エラーメッセージ

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

該当のソースコード

database.yml

yml

1default: &default 2 adapter: mysql2 3 encoding: utf8 4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 5 username: root 6 password: password 7 socket: /tmp/mysql.sock 8 host: db 9 10development: 11 <<: *default 12 database: errors_original_app_development 13 14test: 15 <<: *default 16 database: errors_original_app_test 17 18production: 19 <<: *default 20 adapter: mysql2 21 encoding: utf8 22 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 23 username: root 24 password: 25 socket: /tmp/mysql.sock 26 username: root 27 database: errors_original_app_production 28 password: <%= ENV['DATABASE_PASSWORD'] %> 29 socket: /var/lib/mysql/mysql.sock

docker-compose.yml

yml

1version: '3' 2services: 3 db: 4 image: mysql:5.7 5 environment: 6 MYSQL_ROOT_PASSWORD: password 7 MYSQL_DATABASE: root 8 ports: 9 - "4306:3306" 10 volumes: 11 - ./mysql-confd:/etc/mysql/conf.d 12 13 14 web: 15 build: . 16 command: rails s -p 3000 -b '0.0.0.0' 17 volumes: 18 - .:/app_name 19 ports: 20 - "3000:3000" 21 links: 22 - db 23 - chrome 24 stdin_open: true 25 tty: true 26 27 chrome: 28 image: selenium/standalone-chrome:3.141.59-dubnium 29 ports: 30 - 4444:4444

Dockerfile

FROM ruby:2.6.5 FROM ruby:2.6.5 WORKDIR /tmp RUN apt update && apt install -y lsb-release \ && apt remove -y libmariadb-dev-compat libmariadb-dev RUN wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-common_8.0.18-1debian10_amd64.deb \ https://dev.mysql.com/get/Downloads/MySQL-8.0/libmysqlclient21_8.0.18-1debian10_amd64.deb \ https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-client-core_8.0.18-1debian10_amd64.deb \ https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-client_8.0.18-1debian10_amd64.deb \ https://dev.mysql.com/get/Downloads/MySQL-8.0/libmysqlclient-dev_8.0.18-1debian10_amd64.deb RUN dpkg -i mysql-common_8.0.18-1debian10_amd64.deb \ libmysqlclient21_8.0.18-1debian10_amd64.deb \ mysql-community-client-core_8.0.18-1debian10_amd64.deb \ mysql-community-client_8.0.18-1debian10_amd64.deb \ libmysqlclient-dev_8.0.18-1debian10_amd64.deb RUN mkdir /app_name ENV APP_ROOT /app_name WORKDIR $APP_ROOT ADD ./Gemfile $APP_ROOT/Gemfile ADD ./Gemfile.lock $APP_ROOT/Gemfile.lock RUN gem install bundler RUN bundle install ADD . $APP_ROOT

.circleci/config.yml

yml

1version: 2 2jobs: 3 build: 4 docker: 5 - image: circleci/ruby:2.6.5-node-browsers 6 environment: 7 RAILS_ENV: test 8 MYSQL_HOST: 127.0.0.1 9 MYSQL_USERNAME: 'root' 10 MYSQL_PASSWORD: '' 11 MYSQL_PORT: 3306 12 - image: circleci/mysql:5.6 13 environment: 14 MYSQL_ALLOW_EMPTY_PASSWORD: true 15 MYSQL_ROOT_PASSWORD: '' 16 MYSQL_DATABASE: circle_ci_test-test 17 18 working_directory: ~/circle-ci-test 19 20 steps: 21 - checkout 22

試したこと

・EC2のデータベースを作り直した「https://qiita.com/iiyama_makoto/items/215d6b1b6fe0bd234a4c」
・綴りミスはない「https://teratail.com/questions/258722」
・参考資料が見当たらない

補足情報(FW/ツールのバージョンなど)

ruby 2.6.5
rails 6.0.3.4
mysql 8.0.21

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

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

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

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

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

guest

回答1

0

ベストアンサー

databaseはdeployしたさーばー上で動かしてますね?

でしたら host: localhost にしてください
また production のところの設定が重複しています。正しい方を残して他を削除しましょう

投稿2020/10/25 07:56

winterboum

総合スコア23364

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問