sometimes you need to change a php.ini setting on the fly in your gitlab-ci. this is quite easy.
simple run something like:
echo 'phar.readonly="0"' >> /etc/php/7.1/cli/conf.d/ci.ini
i used my debian stretch docker file, which uses the https://deb.sury.org/ repository for php. your directory structure may differ.
you can find out where php is loading its config files from by running:
php --ini
this prints a list similar to this:
$ php --ini Configuration File (php.ini) Path: /etc/php/7.1/cli Loaded Configuration File: /etc/php/7.1/cli/php.ini Scan for additional .ini files in: /etc/php/7.1/cli/conf.d Additional .ini files parsed: /etc/php/7.1/cli/conf.d/10-mysqlnd.ini, /etc/php/7.1/cli/conf.d/10-opcache.ini, /etc/php/7.1/cli/conf.d/10-pdo.ini, /etc/php/7.1/cli/conf.d/15-xml.ini, /etc/php/7.1/cli/conf.d/20-apcu.ini, /etc/php/7.1/cli/conf.d/20-apcu_bc.ini, /etc/php/7.1/cli/conf.d/20-bcmath.ini, /etc/php/7.1/cli/conf.d/20-bz2.ini, /etc/php/7.1/cli/conf.d/20-calendar.ini, /etc/php/7.1/cli/conf.d/20-ctype.ini, ...
in debian all files in the conf.d
directory are included. so we only need to put it inside this directory. you can also append the config to the main file php.ini
.
relevant part from the gitlab-ci.yml
:
image: c33s/php:7.1 ... build: stage: build script: - composer install - php --ini - echo 'phar.readonly="0"' >> /etc/php/7.1/cli/conf.d/ci.ini - wget https://github.com/box-project/box2/releases/download/2.7.5/box-2.7.5.phar - php box-2.7.5.phar build - php satis.phar --version ...
- cover image by www_darkworkx_de https://pixabay.com/photos/devops-business-process-improvement-3155972/
Top comments (0)