Я начинаю новый проект, используя symfony 4 и Docker.У меня есть 3 контейнера Docker, использующих следующую конфигурацию:
version: "3.1"
services:
mysql:
image: mysql:8.0
container_name: docker-symfony4-mysql
working_dir: /application
volumes:
- .:/application
environment:
- MYSQL_ROOT_PASSWORD=dbrootpw
- MYSQL_DATABASE=docker_symfony4
- MYSQL_USER=dbuser
- MYSQL_PASSWORD=dbpw
ports:
- "8002:3306"
webserver:
image: nginx:alpine
container_name: docker-symfony4-webserver
working_dir: /application
volumes:
- .:/application
- ./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "8000:80"
php-fpm:
build: phpdocker/php-fpm
container_name: docker-symfony4-php-fpm
working_dir: /application
volumes:
- .:/application
- ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini
Вот содержимое моего файла .env:
APP_ENV=dev
APP_SECRET=b154acc26414736e135b6842c08c70e7
DATABASE_URL=mysql://db_user:db_password@mysql:3306/db_name
И файла doctrine.yaml:
parameters:
env(DATABASE_URL): ''
doctrine:
dbal:
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(resolve:DATABASE_URL)%'
orm:
auto_generate_proxy_classes: '%kernel.debug%'
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
Я могу подключиться из контейнера к MySQL Workbench:
docker exec -it docker-symfony4-mysql bash
mysql -u dbuser -p
Enter password:
Welcome to the MySQL monitor
mysql> Show grants;
GRANT USAGE ON *.* TO `dbuser`@`%`
GRANT ALL PRIVILEGES ON `docker_symfony4`.* TO `dbuser`@`%
mysql> show databases;
docker_symfony4
information_schema
У меня возникает эта проблема, когда я пытаюсь использовать Doctrine:
docker-compose exec php-fpm bash
bin/console doctrine:query:sql "show grants"
Я получаю ошибку:
Error thrown while running command "doctrine:query:sql 'show grants'".
Message: "An exception occurred in driver: SQLSTATE[HY000] [1045]
Access denied for user 'db_user'@'172.23.0.3' (using password: YES)"
Что я делаю не так?Как я могу это исправить?Любая помощь с благодарностью!