A good way to change settings in php.ini.
Find out where the php is looking for ini files
Login to your container
sudo docker exec -it CONTAINER_NAME sh
inside docker shell
php --ini
My output:
~ $ php --ini
Configuration File (php.ini) Path: /usr/local/etc/php
Loaded Configuration File: /usr/local/etc/php/php.ini
Scan for additional .ini files in: /usr/local/etc/php/conf.d
Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-fpm.ini,
/usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini,
/usr/local/etc/php/conf.d/docker-php-ext-exif.ini,
/usr/local/etc/php/conf.d/docker-php-ext-gd.ini,
/usr/local/etc/php/conf.d/docker-php-ext-gmp.ini,
/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini,
/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini,
/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini,
/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini,
/usr/local/etc/php/conf.d/docker-php-ext-zip.ini,
/usr/local/etc/php/conf.d/in-php.ini
Now we know where additional .ini files should be placed:
Scan for additional .ini files in: /usr/local/etc/php/conf.d
Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-fpm.ini,
Create your custom ini file, I’ve named mine .Inv_NNJ_php.ini and placed in the same directory as docker-compose.yml
In docker-compose.yml - add your file to volumes. Naming important - you want this file to be parsed the last. So add something that will put it in the end of the list - I’ve added “zz”.
format WHAT:WHERE
volumes:
- docker/.Inv_NNJ_php.ini:/usr/local/etc/php/conf.d/zz_inv_nnj_custom_php.ini
Run compose to add the file
docker-compose up -d
After container was recreated, log into it to verify that custom INI was picked up:
sudo docker exec -it CONTAINER_NAME sh
Now you can check if it was picked up by php - in my case - success, file is in the list at last position.
~ $ php --ini
Configuration File (php.ini) Path: /usr/local/etc/php
Loaded Configuration File: /usr/local/etc/php/php.ini
Scan for additional .ini files in: /usr/local/etc/php/conf.d
Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-fpm.ini,
/usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini,
/usr/local/etc/php/conf.d/docker-php-ext-exif.ini,
/usr/local/etc/php/conf.d/docker-php-ext-gd.ini,
/usr/local/etc/php/conf.d/docker-php-ext-gmp.ini,
/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini,
/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini,
/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini,
/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini,
/usr/local/etc/php/conf.d/docker-php-ext-zip.ini,
/usr/local/etc/php/conf.d/in-php.ini,
/usr/local/etc/php/conf.d/zz_inv_nnj_custom_php.ini