Rails, Docker 環境下において,seedが反映されなくなった
まず,タイトルの問題が発生するまでの経緯を説明します.
なんらかの原因でdocker環境でのlocalhostへの接続がずっと待機中になってしまう問題が発生し,かつDocker Desktopもうまく起動しない状態になったのでどうしようもなく,dockerをインストールしなおしました.
その後,作業を再開するために
再度docker-compose up
し,localhostに接続すると下記のようなエラーが出ました.
ActiveRecord::ConnectionNotEstablished Mysql2::Error Unknown database
そのため,https://qiita.com/suzy1031/items/1b4e1d717b6052a02307を参考に
docker stop $(docker ps -q)
docker rm $(docker ps -aq)
docker rmi $(docker images -q)
docker-compose exec app rails db:create
を行いました.
下記コマンド実行後,
docker-compose run --rm app rake db:migrate
docker-compose run --rm app rake db:seed
再度localhostに接続すると接続はうまくできるようになったのですが,データベースにseed.rbが反映されなくなってしまいました.
この問題の解決策を教えていただきたいです.
localhostへの接続が待機中になってしまう問題が発生する前まではうまくlocalhostへの接続もでき作業に問題はなかったのでファイルに問題はないように思いますが,下記に提示しておきます.
関係ないかもしれませんが,localhostへの接続が待機中になってしまう問題はデータベースが絡むページで起こっていたように思います(html,cssのみのページは問題なく表示されていた).
どうかご教授お願いいたします.
/Dockerfile FROM ruby:2.6.6 # リポジトリを更新し依存モジュールをインストール RUN apt-get update -qq && \ apt-get install -y build-essential \ nodejs # yarnパッケージ管理ツールインストール RUN apt-get update && apt-get install -y curl apt-transport-https wget && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && apt-get install -y yarn # Node.jsをインストール RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ apt-get install -y nodejs #imagemagick # RUN apt-get update -qq && apt-get install -y imagemagick # ルート直下にwebappという名前で作業ディレクトリを作成(コンテナ内のアプリケーションディレクトリ) RUN mkdir /webapp WORKDIR /webapp # ホストのGemfileとGemfile.lockをコンテナにコピー ADD Gemfile /webapp/Gemfile ADD Gemfile.lock /webapp/Gemfile.lock # bundle installの実行 RUN bundle install # ホストのアプリケーションディレクトリ内をすべてコンテナにコピー ADD . /webapp # puma.sockを配置するディレクトリを作成 RUN mkdir -p tmp/sockets
version: '3' services: app: build: context: . command: bundle exec puma -C config/puma.rb ports: - 3000:3000 volumes: - .:/webapp - tmp-data:/webapp/tmp - log-data:/webapp/log depends_on: - db db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: root ports: - '3306:3306' volumes: - db-data:/var/lib/mysql web: build: context: containers/nginx volumes: - public-data:/webapp/public - tmp-data:/webapp/tmp ports: - 80:80 depends_on: - app volumes: public-data: tmp-data: log-data: db-data:
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/12 02:55 編集