Docker с Apache и php 5.3

В продолжение темы развертывания окружения с php 5.3 соорудил вариант на docker. Прошу любить и жаловать – проект docker-grandpa-php. Этот вариант более легковесный, чем вариант с vagrant. Для работы требуются установленные docker и docker-compose.

Шаги по развертыванию:

  • Клонировать репозиторий в удобную директорию
  • Изменить опцию MAIN_WEB_ROOT_PATH и другие опции в файле .env
  • Добавить конфигурацию Ваших виртуальных хостов Apache в директорию main/sites
  • Добавить Ваши локальные домены в /etc/hosts

Опция MAIN_WEB_ROOT_PATH должна содержать путь к директории, которая будет смонтирована в папку /var/www образа main.

Затем можно запускать командой:

docker-compose up -d main mysql

или

docker-compose up -d main mariadb

После чего Ваши сайты должны открываться как обычно в браузере.

Образ main основан на Ubuntu 12.04 (LTS) и содержит Apache, php 5.3, различные расширения php (в том числе xdebug) и memcached.

Директория share монтируется к /root/share образа main.

MySQL и mariadb вынесены в отдельные образы, как это принято в docker. Для соединения с ними из контейнера main к ним нужно подключаться по их именам – mysql и mariadb. Эти имена в качестве хостов надо прописывать в веб-приложениях.

Полезные команды:

Открыть bash-терминал в главном контейнере:

docker-compose exec main bash

Отобразить список контейнеров сборки и их статусы:

docker-compose ps

Остановить все контейнеры текущей сборки:

docker-compose stop

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
JustGAST
Гость
JustGAST
6 лет назад

Игорь, благодарю вас за статью и за репозиторий! Один из немногих, работающих практически из коробки!

Внесу лепту:
В файле php53.conf.example у вас используется тег IfVersion, а модуль version не включается в Dockerfile

Из-за этого контейнер не стартует.
Исправление:
Добавить в main/Dockerfile строчку
RUN a2enmod version
после RUN a2enmod rewrite.

С pull request на гитхабе не разбирался, а то бы закоммитил =)