Общий образ докера для различных конфигураций vhost - PullRequest
0 голосов
/ 11 июня 2018

Мне нужна хорошая практика для развертывания моих php-веб-приложений в локальный док-контейнер на основе Ubuntu 18.04 и Apache 2.4.

В зависимости от типа приложения, его базовый файл - myapp/public/index.php (Laravel) или просто myapp/index.php (обычный ванильный php).Конечно, я могу смонтировать приложения в /var/www/html/myapp или любом другом месте.

Вариант 1 (исправлено / etc / hosts, apache2.conf и vhosts):

  1. Для каждого приложения добавьте 127.0.0.1 myapp в мой локальный файл /etc/hosts, чтобы он перенаправлялся в док-контейнер.

  2. В моем файле /etc/apache2/apache2.conf установите для корня документа значение /var/www/html

  3. Для каждого веб-приложения определите vhost в /etc/apache2/sites-available

Преимущества:

  • Я могу получить доступ к своим приложениям локально, используя такие URL, как http://myapp_1, http://myapp_2и т. д.

  • Я могу указать http://myapp_1 на /var/www/myapp_1/public.

  • Позже я смогу использовать эту конфигурацию в своей производственной среде (без докера) более или менее без изменений.

Недостатки:

  • Конфигурация apache жестко запрограммирована в образ докера,Всякий раз, когда я добавляю, удаляю или переименовываю приложение, мне приходится настраивать и перестраивать образ докера.

  • Работа в команде очень громоздкая, так как каждый может работать над разными подмножествами приложений,должен быть в его / ее образе докера.

Вариант 2 (используйте .htaccess):

  1. In /etc/apache2/apache2.conf и /etc/apache2/sites-available определяют только веб-корень: /var/www/html

  2. Смонтируйте приложения как подкаталоги веб-корня: /var/www/html/myapp_1

  3. Используйте .htaccess внутри соответствующей папки myapp для настройки приложений.Они должны быть доступны в http://localhost/myapp_1 и т. Д.

Преимущества:

  • Нет необходимости настраивать изображение докера дляновые приложения.

  • Нет изменений в локальных /etc/hosts файлах.

Недостатки:

  • Я не знаю, можно ли (и как) настроить .htaccess так, чтобы его можно было использовать как конфигурацию <VirtualHost> со всеми правильно работающими путями (например, css).

  • Конфигурация apache значительно отличается от производственной среды.

Мой вопрос

Что такое хорошая практика для объединенияПреимущества обоих подходов?Какой вариант вы бы выбрали?Есть ли другая альтернатива, о которой я не упомянул?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...