Расширение базы в Docker
Расширение базы добавляют
в образ PHP,
иначе сценарий не умеет
открыть соединение.
Шаблон php:8.5-fpm
не включает драйвер MySQL
по умолчанию:
нужный модуль собирают
командой docker-php-ext-install
в Dockerfile,
и слой остаётся в образе
на все запуски.
Для учебной проверки
хватит только pdo_mysql.
Другие модули баз
здесь не ставим.
Сборка образа:
FROM php:8.5-fpm
RUN docker-php-ext-install pdo_mysql
Сервис app
собирается из текущей папки.
Сайт к MySQL
в этом шаге не подключаем -
достаточно пересобрать FPM
и убедиться, что модуль
виден интерпретатору.
Файл compose.yaml:
services:
app:
build: .
Сборка, подъём и проверка списка модулей:
docker compose up -d --build
docker compose exec app php -m
Среди имён модулей
есть строка pdo_mysql.
Полный список в урок
не копируем -
достаточно найти это имя
в терминале.
Соберите сервис fpm на php:8.5-fpm с модулем pdo_mysql в образе и убедитесь, что он виден интерпретатору.
Запишите имя модуля, без которого PDO не сможет работать с MySQL в этом образе.