An exception occurred in driver: could not find driver
kafkiansky opened this issue · comments
Здравствуйте! Использую вашу сборку, только вместо postgres хочу подключить mysql. Написал следующие docker-файлы:
php-fpm.docker
FROM php:7.2-fpm
RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client \
&& docker-php-ext-install mcrypt pdo_mysql
WORKDIR /app
php-cli.docker
FROM php:7.2-cli
RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client \
&& docker-php-ext-install mcrypt pdo_mysql pcntl
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/bin --filename=composer --quiet
ENV COMPOSER_ALLOW_SUPERUSER 1
WORKDIR /app
В docker-compose.yml добавил образ mysql:
engine-mysql:
image: mysql:5.7
restart: always
environment:
- "MYSQL_ROOT_PASSWORD=xx"
- "MYSQL_USER=user"
- "MYSQL_PASSWORD=xx"
- "MYSQL_DATABASE=db"
ports:
- "3306:3306"
При попытке выполнения следующих двух команд возникает ошибка, которую указал в заголовке:
docker-compose exec php-fpm bash &&
php bin/console doctrine:database:create
Подскажите, что может быть не так?
Верните настройки в config/packages/doctrine.yaml
:
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)%'
и в .env
:
DATABASE_URL=mysql://user:xx@manager-mysql:3306/db
@ElisDN, так эти настройки и так на месте, я их не трогал. В .env файле все тоже так, как вы показали. При этом при попытке создать базу выскакивает такая ошибка.
Запускайте одной командой в контейнере:
docker-compose run --rm php-cli php bin/console doctrine:database:create
@ElisDN, уже что-то:
Access denied for user 'app'@'172.19.0.4' (using password: YES)
Почему акссесс-денайд, если конфиг в .env правильный?
У Вас "MYSQL_USER=user"
, а не app
.
@ElisDN, нет, конфиги я специально указал другие. Хотя при build возникает такая ошибка.
Some of the above modules are already compiled into PHP; please check
the output of "php -i" to see which modules are already loaded.
ERROR: Service 'proglib-engine-php-fpm' failed to build: The command '/bin/sh -c apt-get update && apt-get install -y libmcrypt-dev mysql-client && docker-php-ext-install mcrypt pdo_mysql' returned a non-zero code: 1
Она может быть виной?
@ElisDN, все, спасибо большое вам, ошибка решилась.