Docker окружение

Материал из WiKi - UserSide
Версия от 10:20, 7 мая 2019; Uscld2 (обсуждение | вклад) (Новая страница: «Docker-окружение является удобной альтернативой самостоятельной сборке и настройке всех н…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Docker-окружение является удобной альтернативой самостоятельной сборке и настройке всех необходимых компонентов сервера. Данная статья описывает создание и запуск бандла (набора файлов) Docker-окружения для USERSIDE, начиная с версии 3.13 и новее. Если вы уже используете Docker-окружение для USERSIDE 3.12, то Вам обязательно необходимо ознакомиться с разделом обновления данной главы!

Требования

Необходимо, чтобы на вашем сервере был установлен Docker CE, а также Docker-compose. Для этого у Вас должен быть сервер под управлением 64-разрядной ОС Linux. Инструкции по установке Docker CE и Docker-compose, в зависимости от дистрибутива и версии Linux, Вы найдете на официальном сайте: Docker CE, Docker-compose.

Также необходимо установить систему управлениями версиями GIT для удобного доступа к версиям бандла.

Версионирование бандла

В старой версии бандла Docker-окружения использовался не совсем корректный способ распространения файлов. Распространялись сами файлы бандла, а не их шаблоны, что приводило к конфликтам при попытке обновить файлы бандла. В новых версиях, начиная с v3.13 распространяются файлы-шаблонов, на основании которых пользователь по желанию уже самостоятельно формирует файлы бандла (или просто копирует рабочие файлы из поставляемых шаблонов).

Начиная с версии v3.13 бандла работает следующая схема версионирования. Каждая версия бандла (совпадает с номером версии USERSIDE) распространяется в отдельной ветке. Например, для USERSIDE 3.13 создана ветка v3.13, содержащая все необходимые шаблоны для развёртывания окружения для версии 3.13. Также последняя стабильная версия отображается на ветку master.

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

Вы можете использовать конкретную ветку, например, v3.13, если не планируете обновление до последних версий.

Обратите внимание! Если вы используете старую версию бандла (для версии 3.12), которая изначально распространялась в ветке master, то для обновления на версию 3.13 вам обязательно необходимо ознакомиться с разделом Обновление!

Установка

В данном разделе рассматривается установка и запуск бандла с нуля. Если Вы обновляетесь с 3.12, то вам также придется установить бандл для 3.13 с нуля, предварительно сделав все резервные копии. Это описано в разделе Обновление.

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

Далее будут описаны шаги с указанием в качестве примера установку в каталог /docker/userside. Вы можете использовать любой удобный Вам путь расположения файлов, однако учитывайте то, что все примеры использования будут показаны именно для этого каталога.

Клонирование репозитория

Создайте каталог, в котором будет размещаться ваш бандл, а тажке в нем будет размещаться и всё окружение, включая файлы системы USERSIDE, резервные копии и файлы базы данных. И перейдите в него.

mkdir /docker && cd $_

Выполните команду клонирования репозитория в подкаталог с именем userside.

git clone https://github.com/userside/userside-docker.git userside
cd userside

Если вы желаете ограничиться конкретной веткой, чтобы все обновления файлов шаблонов не выходили за пределы этой ветки, вы можете перейти в нее, например, для версии 3.13 используйте ветку v3.13. Этот шаг является необязательным. Мы рекомендуем оставаться на ветке master.

git checkout v3.13

Для последующих обновлений файлов шаблонов вам достаточно выполнить команду:

git pull

Конфигурирвание бандла

Выполните команду инициализации - она скопирует все необходимые файлы из шаблонов, если те еще не существуют.

./init.sh

В результате у вас появятся файлы Makefile (содержит макросы для простого управления бандлом) и docker-compose.yml (содержит всю конфигурацию бандла).

docker-compose.yml

Вы должны отредактировать файл docker-compose.yml в соответствии с вашими требованиями.

servces

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

postgres

Раздел environment:

  • LANG - настройки языка, расположения и кодировки в формате LOCALE.
  • TZ - часовой пояс.
  • POSTGRES_DB - наименование базы данных (желательно оставить как есть).
  • POSTGRES_USER - имя пользователя для доступа к БД.
  • POSTGRES_PASSWORD - пароль для доступа к БД.
fpm

Раздел environment:

  • TZ - часовой пояс

Раздел volumes:

  • Также, если вам необходимо внести какие-либо настройки в php-ini, вы можете раскомментировать строку с подключением файла php.ini в качестве volume, затем вручную скопировать файл php.ini-example, находящийся в подкаталоге config, в файл с именем php.ini и внести в него необходимые правки.
nginx

Раздел ports:

  • Укажите номер порта хоста (слева), который бы вы хотели транслировать на порт 80 контейнера nginx. Если на хосте у вас установлен сервер nginx и вы желаете проксировать http-запросы внутрь контейнера, то в этом случае желательно ограничить доступ к контейнеру по http, а также изменить порт хоста. Например, чтобы транслировать порт 8080 локального хоста на порт 80 контейнера, укажите "8080:80". Если необходимо ограничить доступ только с локального хоста (если используете проксирование), укажите "127.0.0.1:8080:80".

Раздел logging:

  • Здесь вы можете настроить логгирование стандартными средствами docker. По умолчанию в шаблоне настроена ротация логов с максимальным размером файлов 20 Мб и их количеством 10 шт.

volumes

Здесь настраиваются пути к отображаемым внутрь контейнеров volumes. Желательно не изменять эти настройки без необходимости. Если же все таки есть необходимость их изменить, то также измените соответствующие пути и в Makefile

networks

Если указанная по умолчанию подсеть для бандла пересекается с какой либо вашей подсетью, измените ее здесь в значении параметра subnet. Также это может быть полезно, если вы поднимаете несколько бандлов для разных копий USERSIDE.

Makefile

Этот файл содержит макрокоманды, упрощающие управление бандлом. По сути, это всего лишь сокращения длинных команд, которые Вы также можете использовать для конкретизации параметров.

Главные макрокоманды вынесены в самый верх файла. Это те команды, которые могут пригодиться вам для работы с бандлом чаще остальных. Чаще всего, это просто более короткие псевдонимы других команд. Чтобы выполнить любую из команд, достаточно указать ее после make в командной строке. При этом текущий каталог должен быть /docker/userside. Например, чтобы запустить бандл, выполните:

make up

Список команд

up - запускает бандл down (или stop) - останавливает бандл install - составная команда, которая выполняет все действия, необходимые для развёртывания и запуска бандла, а также установки USERSIDE userside-install - команда, которая только запускает скрипт-установщик внутри контейнера (возможно пригодится, если установка предыдущей командой закончилась неудачно и нужно повторить запуск установщика) update - составная команда, которая выполняет все действия, необходимые для обновления как docker-образов окружения, так и самой системы USERSIDE uninstall - составная команда, которая выполняет удаление бандла. При этом файлы userside, резервные копии и файлы базы данных остаются log - команда, отображающая все логи бандла в реальном времени (выход ctrl+c)