Целью этой библиотеки образов является предоставление разработчикам (в первую очередь разработчикам Добро.сайта) окружения для разработки и тестирования сайтов на PHP с использованием Docker, позволяющего решать следующие задачи.
- Выбор версии PHP (включая уже официально неподдерживаемые).
- Гибкая настройка PHP (выбор подключённых расширений).
- Готовые к работе инструменты разработки и отладки.
- Единообразие. Все образы делаются насколько это возможно похожими друг на друга по составу ПО, используемым версиям, настройкам и т. п.
- Настрой сам. Образы содержат широкий набор расширений PHP, приложений и инструментов, но по умолчанию подключены только самые необходимые. Использование всего остального остаётся на усмотрение разработчика.
Образы рассчитаны на использование с docker-compose, поэтому все примеры даются для него.
Пример файла docker-compose.yml
:
version: '3'
services:
web:
image: dobrosite/php:5.3-apache
environment:
FILE_OWNER_UID: 1000
APACHE_MODULES: env rewrite
PHP_EXTENSIONS: iconv mstring pdo_mysql
PHP_INI_SETTINGS: memory_limit=-1 date.timezone=Europe/Moscow
NULLMAILER_REMOTES: mail.example.com smtp
ports:
- '80:80'
Некоторые настройки можно произвести через переменные окружения.
APACHE_MODULES
— разделённый пробелами список модулей, которые следует подключить. Имена должны указываться без приставкиmod_
.FILE_OWNER_UID
— UID для пользователяwww-data
, от которого работает веб-сервер.PHP_EXTENSIONS
— разделённый пробелами список расширений PHP, которые следует подключить.PHP_INI_SETTINGS
— разделённый пробелами список параметров php.ini, которые следует использовать.NULLMAILER_REMOTES
— содержимое файла /etc/nullmailer/remotes.
В дополнение к переменным окружения вы можете разместить по указанным путям файлы с различными настройками:
/etc/apache2/conf-enabled/*.conf
— дополнительные файлы настройки для веб-сервера Apache HTTP;/etc/apache2/sites-enabled/*.conf
— файлы виртуальных хостов для веб-сервера Apache HTTP;/usr/local/etc/php/
— папка для файловphp.ini
;/usr/local/etc/php/conf.d/
— папка для подключения и настройки расширений PHP.
- PHP cli SAPI
- Стандартные расширения (скомпилированы статически):
- Стандартные расширения (подключаются динамически):
- Расширения PECL:
- PEAR
- Composer
- cURL
- Git
- GNU Make
- GNU Wget
- nmap
- npm
- nullmailer
- OpenSSH (клиент)
- sshpass
- telnet
- PHP apache SAPI
- Apache HTTP 2.4