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

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

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

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

Docker

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

Q&A

解決済

1回答

821閲覧

Rails docker-compose up時のActiveRecord::PendingMigrationError

Shika_Tech

総合スコア13

Ruby on Rails 5

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

Docker

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

0グッド

0クリップ

投稿2020/03/01 05:17

環境

docker-compose version 1.25.4
Rails 5.0.7
ruby 2.5.1

エラー

ActiveRecord::PendingMigrationError

##コード
docker-compose.yml

version:

1services: 2 db: 3 image: mysql:5.7 4 environment: 5 MYSQL_ROOT_PASSWORD: password 6 MYSQL_DATABASE: app_development 7 ports: 8 - "3305:3306" 9 10 web: 11 build: . 12 command: rails s -p 3000 -b '0.0.0.0' 13 volumes: 14 - .:/app 15 ports: 16 - "3000:3000" 17 links: 18 - db
RUN apt-get update -qq && \ apt-get install -y build-essential \ libpq-dev \ nodejs # 作業ディレクトリの作成、設定 RUN mkdir /app ##作業ディレクトリ名をAPP_ROOTに割り当てて、以下$APP_ROOTで参照 ENV APP_ROOT /app WORKDIR $APP_ROOT # ホスト側(ローカル)のGemfileを追加する(ローカルのGemfileは【3】で作成) ADD ./Gemfile $APP_ROOT/Gemfile ADD ./Gemfile.lock $APP_ROOT/Gemfile.lock # Gemfileのbundle install RUN bundle install ADD . $APP_ROOT

試した事

こちらのエラーはmigrationできていないために起こるエラーで、docker-compose run web rails db:migrateを行えばエラーは消えるのですが、Docker-composeでサーバーを立ち上げる度に同じエラーが出てしまいます。
dockerを触り出したのが最近であまり詳しく無いのですが、毎回マイグレーションしなければいけないのでしょうか?
ご回答お待ちしております。

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

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

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

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

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

guest

回答1

0

ベストアンサー

mysqlのコンテナにvolumeが割当てられていないのでコンテナを閉じるたびにデータが消えてるのでしょう。
docker-compose.ymlをこんな感じにしてみてください。

services: db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: app_development ports: - "3305:3306" volumes: - mysql-data:/var/lib/mysql web: build: . command: rails s -p 3000 -b '0.0.0.0' volumes: - .:/app ports: - "3000:3000" links: - db volumes: mysql-data:

投稿2020/03/01 06:18

ozroro

総合スコア97

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

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

Shika_Tech

2020/03/01 09:45

正常に保存されました!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問