Способ добавления дополнительных php.ini файлов всего двумя строчками в docker-compose.yml.
Обычная практика для небольших проектов – использовать образы из dockerhub библиотеки без особых доработок. Иногда нужно внести некоторые настройки в php.ini в контейнере, например, увеличить значение параметра upload_max_filesize. Описание к официальному образу php на dockerhub предлагают такой подход: построить новый образ на основе официального и подменить там php.ini. Если нет нужды в постройке отдельного образа по другим причинам, это оверкилл. Также можно примонтировать всю папку с php.ini, что также не всегда удобно, кроме того пришлось бы таскать в репозитории кучку файлов для плагинов.
Вот альтернативный подход, добавляющий ещё одну папку, которую подхватит php и подключит новые файлы, не затрагивая остальные настройки. Просто добавьте следующие строчки в соответствующие секции docker-compose.yml:
[cc lang=”yaml”]
services:
php:
volumes:
– ./php-ini:/usr/local/etc/php/custom.d
environment:
PHP_INI_SCAN_DIR: “/usr/local/etc/php/custom.d:/usr/local/etc/php/conf.d”
[/cc]
Добавьте ваш новый php.ini в папку php-ini рядом с docker-compose.yml. Директория будет просканирована после оригинальных php.ini и перед файлами conf.d. Таким образом можно добавить или переопределить оригинальные настройки в файле, контролируемом вашей системой версий.
Здесь мы используем тот факт, что PHP_INI_SCAN_DIR может содержать список директорий, разделённых двоеточием. Часть с `/usr/local/etc/php/conf.d` из оригинального образа и соответствует настройкам по умолчанию из оригинального образа. Если что – проверьте ваш образ, запустив `docker-compose run –rm php php –ini | grep additional` и заменив значение на соответствующее из вашего контейнера. Также, если надо что-то доопределить после conf.d, просто добавьте ещё одну директорию используя эту технику.
Вот и всё, ребята )