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

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

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

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

MySQL

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

Ruby on Rails

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Amazon EC2

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

Q&A

0回答

2025閲覧

Docker(Rails + MySql + nginx)でEC2にデプロイする際にdb:createができないエラー

womaoil

総合スコア5

Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

MySQL

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

Ruby on Rails

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Amazon EC2

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

0グッド

0クリップ

投稿2020/04/16 05:47

編集2020/04/16 06:19

前提・実現したいこと

初学者で初デプロイとしてこちらの記事を元に

  • docker
  • Rails
  • MySql
  • nginx

の開発環境をEC2,RDS(mySQL)でデプロイを行ってみたのですが、
docker-compose run web rails db:createで以下のエラーとなります

■■な機能を実装中に以下のエラーメッセージが発生しました。

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

rails aborted! NoMethodError: Cannot load database configuration: undefined method `[]' for nil:NilClass (erb):52:in `<main>' /usr/local/bundle/gems/railties-5.2.4.2/lib/rails/application/configuration.rb:172:in `database_configuration' /usr/local/bundle/gems/activerecord-5.2.4.2/lib/active_record/railtie.rb:133:in `block (2 levels) in <class:Railtie>' /usr/local/bundle/gems/activesupport-5.2.4.2/lib/active_support/lazy_load_hooks.rb:71:in `instance_eval' /usr/local/bundle/gems/activesupport-5.2.4.2/lib/active_support/lazy_load_hooks.rb:71:in `block in execute_hook' /usr/local/bundle/gems/activesupport-5.2.4.2/lib/active_support/lazy_load_hooks.rb:62:in `with_execution_control' /usr/local/bundle/gems/activesupport-5.2.4.2/lib/active_support/lazy_load_hooks.rb:67:in `execute_hook' /usr/local/bundle/gems/activesupport-5.2.4.2/lib/active_support/lazy_load_hooks.rb:52:in `block in run_load_hooks' /usr/local/bundle/gems/activesupport-5.2.4.2/lib/active_support/lazy_load_hooks.rb:51:in `each' /usr/local/bundle/gems/activesupport-5.2.4.2/lib/active_support/lazy_load_hooks.rb:51:in `run_load_hooks' /usr/local/bundle/gems/activerecord-5.2.4.2/lib/active_record/base.rb:328:in `<module:ActiveRecord>' /usr/local/bundle/gems/activerecord-5.2.4.2/lib/active_record/base.rb:27:in `<top (required)>' /usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' /usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in .....

データベースのコマンドなのでRDSの設定なのかdatabase.ymlなのか・・・

知識不足すぎて調べても検討がつきません。
お助けいただけますと幸いです

該当のソースコード

docker-compose.yml

version: '3' services: app: build: . command: bundle exec puma -C config/puma.rb volumes: - .:/app ports: - 3000:3000 depends_on: - db tty: true stdin_open: true db: image: mysql:5.7 volumes: - db-volume:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: web: build: context: containers/nginx ports: - 80:80 depends_on: - app volumes: db-volume:

Dockerfile

FROM ruby:2.5.1 RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - && apt-get update -qq && apt-get install -y build-essential nodejs && apt-get install -y vim RUN mkdir /app WORKDIR /app COPY Gemfile /app/Gemfile COPY Gemfile.lock /app/Gemfile.lock RUN bundle install COPY . /app RUN mkdir -p tmp/sockets

config/database.yml

default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: host: db development: <<: *default database: app_development test: <<: *default database: app_test production: <<: *default host: <%= Rails.application.credentials.rds[:host] %> database: <%= Rails.application.credentials.rds[:database] %> username: <%= Rails.application.credentials.rds[:username] %> password: <%= Rails.application.credentials.rds[:password] %>

docker-compose run -e EDITOR="vim" web rails credentials:editで以下のRDSの情報も入力しました

rds: host: RDSのエンドポイント database: RDSの「データベースの名前」 username: RDSの「マスターユーザの名前」 password: RDSの「マスターパスワード」

試したこと

  • sshで入ってdocker,docker-composeがインストールされている所までは確認しました。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問