##はじめに
dockerでローカルの環境構築してdocker-compose up した後、ブラウザで確認したらタイトルのエラーが発生しました。
解決できたので解決の手順を記事に残しておきます。よろしくお願いします。
##解決までの手順
まず前提として、以前もローカルでdockerを使用して動かしていましたが、本番環境との兼ね合いでいろいろソースで設定をいじくった後のエラーでした。
①volumeの削除
docker-compose down --volumes
上記のコマンドでvolumeを削除します。
②db:create
volumeを削除してupすると次はdatabase見つかりません的なエラーが出たので下記コマンドでcreateしました。
docker-compose run web bundle exec rails db:create
docker-compose run web bundle exec rails db:migrate
③docker-compose up
最後にupしたらうまいこといきました!
##仮説の原因
Mysqlにうまく繋げられていなかったのはエラー文から明らかですね。
このエラーについて調べていると、「volumeを削除することで解決する」といった記事がいくつか見かけたのでvolume削除しましたが、原因については詳しく書かれている方は見かけませんでした。。。
おそらくですが、以前にもdockerを使ってローカル環境で動かしていたこともあり、volumeに何かしらの情報が残っていてそれが邪魔していたのでは?と考えています。
例えばパスワード情報とか。。。(このときパスワード情報もソースで変更したりしていたので)
ですのでvolumeを一度削除しないとパスワードが書き換えられていないとか!?
そのための「①volumeの削除」だと考えています。
そして、②ですが、基本的にコンテナをdownさせるとその中の記録も削除されてしまいますが、DBの情報は削除されてしまうと困るのでvolumeとしてキャッシュさせています。
しかしながら先ほどvolumeを削除したのでDBもなくなったのでは!?と考えます。
ですので②でもう一度DBを作成してマイグレートしました。
##最後に
これらは私の見解ですので、もし、いやいや多分こうじゃね?とか似たような経験をされた方がいましたら教えていただけると幸いです。
参考:
https://qiita.com/fumi_042/items/7d1c14e335ab1c226e0f
https://qiita.com/muzou/items/c2f862b6f0ebfd1b22ae