Я создал Dockerfile, как показано ниже
FROM ubuntu:14.04
RUN apt-get update -y && apt-get install -y software-properties-common language-pack-en-base
RUN LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
RUN apt-get -y update && apt-get install -y \
php7.0 \
php7.0-pgsql \
php-pear \
php7.0-curl \
php7.0-sqlite3 \
php7.0-xml \
php7.0-bcmath \
php7.0-zip \
php7.0-mbstring \
php-xdebug \
php-ast
WORKDIR /var/www/html/code
Когда я бегу docker-compose build container_name
А также docker-compose run --rm container_name php -m
Кажется, что не все модули php были установлены во время сборки контейнера. Как показывает результат ниже.
[PHP Modules]
ast
calendar
Core
ctype
date
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
openssl
pcntl
pcre
PDO
Phar
posix
readline
Reflection
session
shmop
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xdebug
Zend OPcache
zlib
[Zend Modules]
Xdebug
Zend OPcache
Я не получил php-модули, которые я ожидал увидеть как pdo_pgsql
, xml
, xmlreader
и так далее.
Вместо…
docker-compose run --rm container_name php -m
…тип:
docker-compose run --rm container_name php7.0 -m
ИЛИ ЖЕ
В Dockerfile, прямо перед …
WORKDIR /var/www/html/code
…добавлять:
RUN update-alternatives --set php /usr/bin/php7.0
Я бы использовал официальное изображение PHP из Dockerhub. В него встроен служебный скрипт для установки и включения расширений PHP. Пересмотренный Dockerfile для ваших нужд может выглядеть примерно так:
FROM php:7
RUN docker-php-ext-install <YOUR-EXTENSIONS>
WORKDIR /var/www/html/code
где YOUR-EXTENSIONS возможны значения из этого списка:
Possible values for ext-name:
bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp
gd gettext gmp hash iconv imap interbase intl json ldap mbstring mcrypt
mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci
pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode
reflection session shmop simplexml snmp soap sockets spl standard
sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc
xmlwriter xsl zip
Есть другие теги для других версий на изображении на Dockerhub — Проверьте документы там
Надеюсь это поможет
Dylan