Я пытаюсь настроить мой докер с помощью приложения php (Symfony 3).
Все кажется прекрасным, но Symfony не может подключиться к mysql.
У меня есть ошибка:
Uncaught PHP Exception Doctrine\DBAL\Exception\DriverException: "Исключение произошло в драйвере: не удалось найти драйвер"
Мой файл docker-compose.yaml
:
version: '3'
services:
app:
image: car-rental
ports:
- "8888:80"
links:
- php
- db
volumes:
- ./.code:/var/www/html
depends_on:
- db
php:
image: php:7.1-fpm
volumes:
- ./.code:/var/www/html
db:
image: mysql:5.7
volumes:
- mysql-data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: test
MYSQL_DATABASE: rental
volumes:
mysql-data:
Как упоминание о докере-хабе php, вы можете видеть по умолчанию, что он содержит только redis redis xdebug.
Некоторые расширения не предоставляются источником PHP, а доступны через PECL. Чтобы установить расширение PECL, используйте команду pecl install для загрузки и компиляции, а затем используйте docker-php-ext-enable, чтобы включить его.
Вы можете использовать один и тот же файл компоновки докеров, просто запустите команду при загрузке контейнера
php:
image: php:7.1-fpm
command:docker-php-ext-install mysqli
volumes:
- ./.code:/var/www/html
Ater вы можете проверить
php -m
Это модули по умолчанию в последних изображениях докеров, которые вы вытащили.
Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib
Эта ошибка (could not find driver
) означает, что ваш PHP не имеет pdo_mysql
модуля pdo_mysql
. Вы должны включить его или установить сначала, если он еще не установлен.