J'ai un tel docker-compose.yml
:
database:
container_name: test_db
image: mysql:5.7
volumes:
- ./docker/my.cnf:/etc/my.cnf
environment:
- "MYSQL_ROOT_PASSWORD=root"
- "MYSQL_DATABASE=test_db"
ports:
- "3306:3306"
volumes:
- test_db_data:/var/lib/mysql
volumes:
test_db_data:
et je veux modifier le sql_mode
.
./docker/my.cnf
contient:
[mysqld]
sql_mode=""
Mais lorsque je me connecte à db depuis ma machine locale et que j'exécute SELECT @@sql_mode;
Je reçois:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Qu'est-ce que je fais mal?
J'ai aussi changé
- ./docker/my.cnf:/etc/my.cnf
à
- ./docker/my.cnf:/etc/alternatives/my.cnf
Ce n'est pas lié au problème, mais il semble que ce soit considéré comme une "meilleure pratique".
Vous pouvez l'ajouter à votre service db:
command: --sql_mode=""
alors c'est:
database:
container_name: test_db
image: mysql:5.7
volumes:
- ./docker/my.cnf:/etc/my.cnf
environment:
- "MYSQL_ROOT_PASSWORD=root"
- "MYSQL_DATABASE=test_db"
ports:
- "3306:3306"
volumes:
- test_db_data:/var/lib/mysql
command: --sql_mode=""
Essayez d'utiliser une seule directive "volumes". Peut-être qu'il n'utilise que le dernier.