前提・実現したいこと
タイトルのとおりです。
こちらを参考にAWSでのデプロイをており、デプロイ自体はできましたが、ローカルでrailsを開こうとすると、下記のようなエラーメッセージが出てきます。なお、デプロイ前はdocker-compose upでなんのエラーもなく、railsの平和な画像が出ていました。
発生している問題・エラーメッセージ
Mysql2::Error::ConnectionError Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) Extracted source (around line #90): conn_attrs = parse_connect_attrs(opts[:connect_attrs]) connect user, pass, host, port, database, socket, flags, conn_attrs end def parse_ssl_mode(mode)
該当のソースコード
database.yml default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: password socket: /tmp/mysql.sock #host: db development: <<: *default database: gomisutenavi_development # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". # Do not set this db to the same as development or production. test: <<: *default database: gomisutenavi_test # As with config/secrets.yml, you never want to store sensitive information, # like your database password, in your source code. If your source code is # ever seen by anyone, they now have access to your database. # # Instead, provide the password as a unix environment variable when you boot # the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database # for a full rundown on how to provide these environment variables in a # production deployment. # # On Heroku and other platform providers, you may have a full connection URL # available as an environment variable. For example: # # DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase" # # You can use this database configuration with: # # production: # url: <%= ENV['DATABASE_URL'] %> # production: <<: *default database: gomisutenavi_production username: root password: <%= ENV['DATABASE_PASSWORD'] %> socket: /var/lib/mysql/mysql.sock
docker-compose.yml version: '3' services: db: image: mysql:5.7 platform: linux/x86_64 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: root ports: - "3306:3306" web: build: . command: /bin/sh -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" volumes: - .:/gomisutenavi ports: - "3000:3000" links: - db
Dockerfile FROM ruby:2.5.8 RUN apt-get update -qq && \ apt-get install -y build-essential \ libpq-dev \ nodejs RUN mkdir /gomisutenavi ENV APP_ROOT /gomisutenavi WORKDIR $APP_ROOT ADD ./Gemfile $APP_ROOT/Gemfile ADD ./Gemfile.lock $APP_ROOT/Gemfile.lock RUN bundle install ADD . $APP_ROOT
試したこと
解決するために試した記事
mysqlのsocketエラーでrailsアプリが起動できない
Rails アプリ起動時のMysqlエラー を解消
Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’のエラーを解消するためのヒント
補足情報(FW/ツールのバージョンなど)
ruby 2.5.8
rails 5.2.6
docker-compose 1.29.2
docker 20.10.8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/21 11:59
2021/10/21 22:47
2021/10/22 10:57
2021/10/22 11:03
2021/10/22 11:57 編集
2021/10/22 12:03
2021/10/22 12:40 編集
2021/10/22 13:25
2021/10/23 00:00 編集
2021/10/23 02:37
2021/10/23 02:49
2021/10/23 02:59
2021/10/23 05:29
2021/10/23 05:29