Установка с использованием Docker

Материал из WiKi - UserSide

Начиная с версии USERSIDE 3.12, поддерживается установка приложения в программную среду, сформированную из контейнеров Docker. Обратите внимание на то, что контейнеры Docker не содержат программного кода USERSIDE, а только лишь формируют настроенное окружение, подготовленное для установки в него USERSIDE.

Предполагается, что пользователь знаком с основными принципами виртуализации, а также имеет опыт работы с Docker. Иначе перед тем, как продолжить, необходимо изучить основы работы и обслуживания Docker. Мы не оказываем технической поддержки, связанной с обслуживанием Docker. Также предполагается, что система Docker уже установлена и исправно функционирует.

Требования

Для развёртывания необходим установленный Docker и утилита Compose. О том, как установить Docker-ce и Compose можно ознакомиться по следующим ссылкам: Docker Compose

Конфигурация

Для создания пакета контейнеров, обеспечивающих работу системы ERP USERSIDE, используется конфигурационный файл docker-compose.yml, в котором описаны три службы (services):nginx, php-fpm и postgres, параметры подключаемых томов (volumes), а так же параметры внутренней виртуальной сети (networks).

Службы (services)

В блоке services: перечислены службы, контейнеры для которых будут обслуживаться данным пакетом. Для некоторых служб следует указать правильные значения переменных окружения перед тем, как запустить процедуру построения контейнеров.

  • Для службы postgres необходимо указать переменную среды LANG (язык в формате locale), переменную среды TZ (часовой пояс), а также переменные среды POSTGRES_*, определяющие название базы данных, имя пользователя и пароль.
  • Для службы fpm необходимо указать переменную среды TZ (часовой пояс).
  • Для службы nginx необходимо указать соответствие портов хоста и контейнера. По умолчанию 80 порт хоста транслируется на 80 порт контейнера. Это удобно, если на вашем хосте нет WEB-сервера и ERP USERSIDE будет единственным WEB-приложением на нем. В таком случае Вам больше ничего не нужно настраивать. Всё заработает сразу же после запуска контейнера и установки USERSIDE. Однако, если на этом хосте уже функционирует другой WEB-сервер, то соответствие портов следует изменить, например, на "8080:80" - в этом случае локальный порт 8080 будет транслироваться на 80 порт контейнера, а на существующем на хосте WEB-сервере необходимо настроить проксирование на адрес 127.0.0.1:8080.

Тома (volumes)

Воспользуйтесь блоком volumes: в конце конфигурационного файла, чтобы изменить пути к подключаемым томам.

По умолчанию конфигурация предполагает два общих тома: www (для файлов приложения), backup (для файлов резервных копий). Вы можете изменить конфигурацию подключаемых томов по желанию, чтобы расположить файлы приложения и резервных копий в удобном для вас месте. Вы можете использовать любой драйвер, поставляемый вместе с Docker или подключаемый отдельно для монтирования томов. Например, вы можете смонтировать том резервных копий напрямую на Amazon S3. Подробнее с возможностями томов в Docker Вы можете ознакомиться в официальной документации.

Помимо этого, можно отдельно настроить тома для логов nginx (по умолчанию монтируется каталог хоста /var/log/userside/nginx) и расположения файлов базы данных (по умолчанию используется автомонтирование), но на практике такая необходимость отсутствует.

Сети (networks)

В блоке networks: настраивается внутренняя сеть пакета internal. Если указанная в конфигурации подсеть не пересекается с вашей сетью, то ничего изменять не нужно. В противном случае, измените настройки подсети таким образом, чтобы она не пересекалась с существующей маршрутизацией.