В предыдущей статье говорилось о том, как создать среду разработки Laravel с помощью Docker. Фактически, он может запускать любой PHP-проект на локальном компьютере с помощью Docker, так что любой PHP-проект может выполняться в среде Docker. В основном это файл Docker, который должен сделать PHP зеркальным в соответствии с зависимостью от проекта PHP. В этой статье в основном рассказывается о том, как создать файл изображения Docker на PHP в соответствии с требованиями.
1. Наследование базового зеркала
Сначала вам нужно найти базовый образ в соответствии с требованиями вашего PHP-проекта, а затем установить расширение PHP по запросу на основе базового образа. Использовать в файле Dockerfile ИЗ Команда задает базовое изображение.
From
ВУкажите базовое исходное изображение для создания зеркала, и если локальное изображение не указано, оно будет автоматически отражено из общедоступной библиотеки Docker.FROMДолжна быть первой инструкцией неаннотированной строки в файле Dockerfile, то есть начинается инструкция Dockerfile fromFROM.
Здесь мы намерены создать настраиваемый образ PHP 7.2, включающий FPM, поэтому сначала укажите базовый образ в файле Dockerfile:
FROM php:7.2-fpm
2. Установите расширения PHP
Основной задачей настройки образа PHP является установка различных расширений PHP. Существует три способа установки расширений образов PHP в Dockerfile. Каждый метод имеет свой собственный сценарий использования, который, в свою очередь, описан ниже.
2.1 Установите официальное расширение PHP в docker hub
Официальные расширения PHP предоставляются в Docker Hub, доступ к которым можно получить через docker-php-ext-install Команда сценария перечисляет расширения, которые будут установлены в файле Docker. Вот что мы обычно используем при установке образа PHP pdo 、 pdo_mysql 、 mcrypt Эти расширения.
FROM php:7.2-fpm RUN docker-php-ext-install pdo pdo_mysql mcrypt zip gd pcntl opcache bcmath
Если вам нужно указать некоторые пользовательские параметры компиляции для расширения, docker предоставляет другой полезный скрипт docker-php-ext-configure Для передачи параметров компиляции (которые обычно не требуются).
FROM php:7.2-fpm
RUN docker-php-ext-install pdo pdo_mysql mcrypt zip pcntl opcache bcmath\
&& docker-php-ext-install -j$(nproc) iconv \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd2.2 Используйте PECL для установки расширений
На DockerHub доступно всего несколько расширений PHP, и установка дополнительных расширений по-прежнему требуется. PECL В образе Docker установка pecl Загрузка, компиляция, установка расширений и их использование docker-php-ext-включить
Используйте ниже PECL Установленный PHP Из redis Также grpc Расширяется.
RUN pecl install grpc \
&& docker-php-ext-enable grpc \
&& pecl install -o -f redis \
&& docker-php-ext-enable redis \
&& rm -rf /tmp/pear2.3 Расширение для установки исходного кода
Некоторые расширения недоступны docker-php-ext-установка Установка также не удалась PECL Установка может быть выполнена только путем компиляции исходного кода (в данном случае это Phalcon, расширяемая платформа PHP, но настройка сложнее, и я расскажу об этом позже), а расширения PHP также могут быть установлены с помощью исходного кода в Docker.
RUN curl -fsSL 'https://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz' -o xcache.tar.gz \
&& mkdir -p /tmp/xcache \
&& tar -xf xcache.tar.gz -C /tmp/xcache --strip-components=1 \
&& rm xcache.tar.gz \
&& docker-php-ext-configure /tmp/xcache --enable-xcache \
&& docker-php-ext-install /tmp/xcache \
&& rm -r /tmp/xcacheВыступление в конце
Эта статья посвящена тому, как установить расширение PHP в Docker. На самом деле, есть много других концепций, связанных с Docker, которые необходимо понять, чтобы создать нужный вам файл изображения. К счастью, в официальном руководстве по Docker есть подробные объяснения. Заинтересованные люди должны следовать инструкциям руководства и практиковать его самостоятельно.
В настоящее время языком разработки на стороне сервиса в организации сервисного бизнеса в основном является Go. PHP чаще используется в некоторых старых системах, системах управления за кулисами или системах активного класса. Количество PHP-кодов, которые я написал за последние два месяца, можно посчитать. Больше времени тратится на написание кодов Go. Итак, есть несколько недавних технических статей о классах PHP, а затем есть время написать о том, как установить и настроить Phalcon в Docker.