Hello :)
Alors voila j'ai un soucis avec Docker, quand je lance la commande docker compose exec app rails db:migrate j'ai cette erreur:
rails aborted!
ActiveRecord::ConnectionNotEstablished: Can't connect to server on 'database' (115)
Caused by:
Mysql2::Error::ConnectionError: Can't connect to server on 'database' (115)
Tasks: TOP => db:migrate:reset => db:drop => db:check_protected_environments
(See full trace by running task with --trace)
Je ne vois pas d'où ça pourrait venir :/
Voila pour le code
Docker Compose
version: '3'
volumes:
mysql_data:
bundle:
services:
server:
restart: unless-stopped
build:
context: .
dockerfile: ./docker/server/Dockerfile
volumes:
- .:/var/www/app
- ./docker/server/nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
ports:
- 80:80
database:
image: mysql:8.0
env_file: .env.$RAILS_ENV
restart: unless-stopped
volumes:
- mysql_data:/var/lib/mysql
ports:
- "5432:3306"
app:
restart: unless-stopped
build:
context: .
dockerfile: ./docker/app/Dockerfile
volumes:
- .:/var/www/app
- bundle:/usr/local/bundle
ports:
- "3000:3000"
depends_on:
- database
links:
- database
env_file: .env.$RAILS_ENV
tty: true
mailhog:
image: mailhog/mailhog
logging:
driver: 'none'
ports:
- 1025:1025
- 8025:8025
Config Database
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
port: 5432
development:
<<: *default
username: <%= ENV['DB_USER'] %>
password: <%= ENV['DB_PASSWORD'] %>
host: <%= ENV['DB_HOST'] %>
database: <%= ENV['DB_NAME'] %>
Quelqu'un aurait une idée? ^^
EDIT
alors j'ai placé le port 5432 à 3306:3306, ça me fait cette erreur quand je lance db:create:
Created database 'app'
Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
Couldn't create '' database. Please check your configuration.
rails aborted!
ActiveRecord::ConnectionNotEstablished: Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
Caused by:
Mysql2::Error::ConnectionError: Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
quand je lance db:migrate:reset j'ai:
Dropped database 'app'
Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
Couldn't drop database ''
rails aborted!
ActiveRecord::ConnectionNotEstablished: Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
Caused by:
Mysql2::Error::ConnectionError: Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
Tasks: TOP => db:drop:_unsafe
(See full trace by running task with --trace)
En gros ça arrive à créer la database, ou à la drop pour faire un reset, et tout de suite après il y a l'erreur, du coup je comprends pas, je suis connecté à la base ou pas? :/