Установка IQChannels на Docker
Обзор образа
Образ для Докера:
- Использует Ubuntu 16.04 в качестве базового образа.
- Внутри образа приложение находится в папке
/iqchannels. - Содержит дополнительные пакеты:
- libaio1
- ca-certificates
- webp
- imagemagick
- Идет с установленным и настроенным клиентом для Oracle instantclient_12_1.
- Заданы
/etc/default/locale:- LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANGUAGE=en_US:en
- LANG=en_US.UTF-8
Структура папки /iqchannels:
bin— скомпилированные бинарные файлы приложения, скрипты управления приложением.config— конфигурационные файлы и тестовые данные.- migrations — файлы миграций для баз данных.
static— статические файлы (JavaScript, CSS, картинки и т.д.)var/run,var/log,var/upload— папки для логов, pid-файлов (в Unix) и загружаемого пользовательского контента.
Установка
- Выберите требуемый образ.
docker.iqstore.ru/iqchannels:2017.2.0
- Создайте папки для хранения внешних данных контейнера.
$ mkdir -p var/log var/run var/upload
-
Создайте файл конфигурации
config.yaml. -
Укажите настройки базы данных в
config.yaml.
PostgreSQL:
db:
type: postgres
connect: port=5432 dbname=iqchannels user=iqchannels password=secret sslmode=disable
max_idle: 4 # Max idle connections in a connection pool.
max_open: 12 # Max open connections in a connection pool.
SQL Server:
#Пример для localhost:
db:
type: mssql
connect: port=1433;database=iqchannels;user id=sa;password=Secret22;encrypt=disable
max_idle: 4 # Max idle connections in a connection pool.
max_open: 12 # Max open connections in a connection pool.
#Пример с подключением к серверу MSSQL на другом сервере (не в localhost):
db:
type: mssql
connect: sqlserver://sa:password@192.168.1.150:1433?database=iqchannels
max_idle: 4 # Max idle connections in a connection pool.
max_open: 12 # Max open connections in a connection pool.
- По умолчанию в системе для хранения вложенных в чат файлов используется каталог /iqchannels/var. При обновлении системы необходимо копировать этот каталог и подставлять его в каталог новой версии чат-платформы, иначе файлы будут недоступны для просмотра в истории сообщений. Чтобы избежать этого, рекомендуется настроить сохранение вложений в отдельный каталог, подключённый как сетевой диск. Для этого создайте сетевую папку, подключите её на сервере как сетевой диск и добавьте/измените параметр в конфигурационном файле config/config.yaml:
files:
upload_path: "/mnt/iqchannels-var/upload" # Путь к каталогу для хранения загружаемых файлов
При необходимости, измените другие настройки сервера в файле config/config.yaml. Там есть настройки по умолчанию с комментариями.
6. Запустите скрипты миграции базы данных:
docker run -it --rm \
--net=host \
-v /absolute-path-to/config.yaml:/iqchannels/config/config.yaml \
-v /absolute-path-to/var:/iqchannels/var \
docker.iqstore.ru/iqchannels:2017.2.0 \
migrate
- Запустите контейнер с приложением в фоновом режиме (-d):
docker run -it -d \
--name=iqchannels \
--net=host \
-v /absolute-path-to/config.yaml:/iqchannels/config/config.yaml \
-v /absolute-path-to/var:/iqchannels/var \
docker.iqstore.ru/iqchannels:2017.2.0 \
run
- Готово. Проверьте, что сервер запущен:
- Перейдите к Настройке приложения.
Комментарии:
При необходимости, замените --net=host на сопоставление портов:
-p 3001:3001 -p 3002:3002