Добавление расширений к php из контейнера Docker - PullRequest
0 голосов
/ 24 октября 2018

Я использую Arch Linux OS.

У меня есть контейнер, в котором запущен проект php, и мне нужно включить расширения gmp и curl.

Мой контейнер основан на альпийском образеи я могу установить расширения, используя docker exec {container-name} apk add php-gmp php-curl.

Затем, если я запускаю docker exec {container-name} php -m, чтобы отобразить мои расширения, консоль напечатает gmp и curl.Отлично, это все хорошо, у меня также включены расширения в файле php.ini, работающем внутри того же контейнера.

Но если я иду к контроллеру и возвращаю extension_loaded('gmp'), он печатает false!

Чего мне не хватает?

1 Ответ

0 голосов
/ 24 октября 2018

Привет Джону Стерлингу за ответ.

Мне нужно было повторно отредактировать Dockerfile , чтобы включить в него пакеты gmp и curl, а затем Dockerfile отредактировать php.ini* Конфигурационный файл , включающий также расширения gmp и curl.

Итак:

RUN apk add --no-cache \

... {все мои другие пакеты} ...

php-gpm \

php-curl

RUN sed -i 's / extension =. ГМП $ / расширение = ГМП /;. s / расширение = локон $ / расширение = локон /;»/etc/php7/php.ini

Последняя строка использует инструмент терминала 'sed -i' для замены любых строк, которые соответствуют extension=gmp и extension=curl, и заменяет всю строкучто они на

Это, по сути, не комментирует их из файла php.ini , не копируя совершенно новый файл php.ini из каталога.

После перестройки всего проекта, используя docker-compose build, затем начав все заново extension_loaded('gmp') вернул true!

...