前提・実現したいこと
環境
Ruby 2.7.1
Ruby on Rails 5.2.4.3
MySQL 5.6.47
AWS (S3のみ使用)
railsのアプリケーションにdockerを導入する際,
docker-compose up
にて
サーバーを立てようとしたが上記のエラーがおきてしまい
docker-compose run web rails db:create
のコマンドもCan't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
と帰ってくる。
### 行ったこと
1.全てのコンテナを立ち下げ再びビルドを行った。
2.mysqlに繋がら可能性があると判断したので、mysql -u root コマンドにてmysqlに接続できるから確認しました。問題なくmysqlに接続する事はできました。
3
socket: /var/run/mysqld/mysqld.sock
上記をdatabe.ymlに記入したが治らなかった
ソースコード
database.yml
default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: development: <<: *default database: food-pictures_development test: <<: *default database: food-pictures_test production: <<: *default database: food-pictures_production username: food-pictures password: <%= ENV['FOOD-PICTURES_DATABASE_PASSWORD'] %>
Dockerfile
1FROM ruby:2.7.1 2 3 4RUN apt-get update -qq && \ 5 apt-get install -y build-essential \ 6 libpq-dev \ 7 nodejs 8 9 10RUN mkdir /food-pictures 11 12ENV APP_ROOT /food-pictures 13WORKDIR $APP_ROOT 14 15 16ADD ./Gemfile $APP_ROOT/Gemfile 17ADD ./Gemfile.lock $APP_ROOT/Gemfile.lock 18 19 20RUN bundle install 21ADD . $APP_ROOT
docker-compose.yml
version: '3' services: db: image: mysql:5.6 environment: MYSQL_DATABASE: root MYSQL_ROOT_PASSWORD: ports: - "3306:3306" volumes: - ./tmp/db:/var/lib/mysql/data web: build: . command: rails s -p 3000 -b '0.0.0.0' volumes: - .:/food-pictures ports: - "3000:3000" links: - db
### 参考サイト
https://qiita.com/azul915/items/5b7063cbc80192343fc0
追記
database.yml
にて host: dbを記述したところ
Unknown MySQL server host 'db' (-2)
といったエラーが出た。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/10 15:53 編集
2020/08/10 15:55
2020/08/10 16:11 編集
2020/08/10 16:16
2020/08/10 16:41