前提・実現したいこと
docker-compose run web rails db:createしたい
ここに質問の内容を詳しく書いてください。
railsで作ったアプリケーションにAWSのEC2でデプロイ後dockerを導入した際に起こったエラーです
発生している問題・エラーメッセージ
Mysql2::Error::ConnectionError: Plugin caching_sha2_password could not be loaded: /usr/lib/x86_64-linux-gnu/mariadb19/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
該当のソースコード
Dockerfile
FROM ruby:2.6.5 RUN apt-get update -qq && \ apt-get install -y build-essential \ libpq-dev \ nodejs RUN mkdir /app_name ENV APP_ROOT /app_name WORKDIR $APP_ROOT ADD ./Gemfile $APP_ROOT/Gemfile ADD ./Gemfile.lock $APP_ROOT/Gemfile.lock RUN gem install bundler RUN bundle install ADD . $APP_ROOT
docker-compose.yml
yml
1version: '3' 2services: 3 db: 4 image: mysql:8.0.21 5 environment: 6 MYSQL_ROOT_PASSWORD: password 7 MYSQL_DATABASE: root 8 ports: 9 - "4306:3306" 10 volumes: 11 - ./mysql-confd:/etc/mysql/conf.d 12 13 14 web: 15 build: . 16 command: rails s -p 3000 -b '0.0.0.0' 17 volumes: 18 - .:/app_name 19 ports: 20 - "3000:3000" 21 links: 22 - db
database.yml
yml
1default: &default 2 adapter: mysql2 3 encoding: utf8 4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 5 username: root 6 password: password 7 socket: /tmp/mysql.sock 8 host: db 9 10development: 11 <<: *default 12 database: errors_original_app_development 13 14test: 15 <<: *default 16 database: errors_original_app_test 17 18production: 19 <<: *default 20 adapter: mysql2 21 encoding: utf8 22 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 23 username: root 24 password: 25 socket: /tmp/mysql.sock 26 username: root 27 database: errors_original_app_production 28 password: <%= ENV['DATABASE_PASSWORD'] %> 29 socket: /var/lib/mysql/mysql.sock
試したこと
・ イメージ全消し、コンテナ再ビルド
・ローカルのmysql-confd/default_authentication.cnf
[mysqld] default_authentication_plugin= mysql_native_password
を挿入
補足情報(FW/ツールのバージョンなど)
ruby 2.6.5
rails 6.0.3.4
mysql 8.0.21
docker 19.03.13
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。