2017-02-14 12 views
1

Я создал Dockerfile, как показано нижеDocker Изображение Установка PHP модули

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 модули, которые я exepected, чтобы увидеть, как pdo_pgsql, xml, xmlreader и т.д.

ответ

0

Вместо того, чтобы ...

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 
1

Я хотел бы использовать официальный PHP изображение from Dockerhub. Он имеет встроенный скрипт утилиты для установки и расширения PHP-расширений. Пересмотренный Dockerfile для ваших нужд может быть что-то вроде этого:

FROM php:7 
RUN docker-php-ext-install <YOUR-EXTENSIONS> 
WORKDIR /var/www/html/code 

где ВАШИ-удлинители возможных значений из этого списка:

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 - Проверьте документы там

Надеются, что это помогает

Дилану