Установка Citeck c помощью Docker Compose
Общие требования к системе
Все действия рекомендуется выполнять в командной строке или окне терминала, или в Git CMD Windows, запущенного с повышенными правами.
В файле hosts прописать
127.0.0.1 ecos-community-demo
. Путь к папке, где лежит файл hosts, зависит от операционной системы, которая установлена на вашем компьютере:Windows— c:/windows/system32/drivers/etc/hosts
Linux, Ubuntu, Unix, BSD — /etc/hosts
Mac OS — /private/etc/hosts
Системные требования
Windows
Windows 11 64bit: Home, Pro, Enterprise или Education версии 21H2 или выше.
Windows 10 64bit: Home или Pro 21H1 (сборка 19043) или выше, Enterprise или Education 20H2 (сборка 19042) или выше
Включите функцию WSL 2 в Windows. Подробные инструкции см. в документации Microsoft.
Для успешного запуска WSL 2 в Windows 10 или Windows 11 необходимы следующие предварительные требования к оборудованию:
64-битный процессор с трансляцией адресов второго уровня (SLAT)
Не менее 16 ГБ оперативной памяти.
80 Гб свободного дискового пространства.
Поддержка аппаратной виртуализации на уровне BIOS должна быть включена в настройках BIOS. Дополнительные сведения см. в разделе Виртуализация
Загрузить и установить пакет обновления ядра Linux
Официальное руководстов по установке Docker на Windows
Примечание
Клонировать репозиторий и запускать скрипты необходимо из-под Ubuntu
Linux
Поддержка 64-битного ядра и процессора для виртуализации.
Поддержка виртуализации KVM. Следуйте инструкциям поддержки виртуализации KVM для проверки включены или нет модули ядра KVM и как предоставить доступ к устройству kvm.
QEMU должен быть версии 5.2 или новее. Рекомендуем обновиться до последней версии.
Подсистема инициализации и управления службами systemd.
Gnome или среда рабочего стола KDE.
Не менее 16 ГБ оперативной памяти.
80 Гб свободного дискового пространства.
Включите настройку сопоставления идентификаторов в пространствах имен пользователей, см. Общий доступ к файлам
MacOS
MacOS версии 10.15 или выше.
Не менее 16 ГБ оперативной памяти.
80 Гб свободного дискового пространства.
Установка и запуск проекта
Важно
Комплект поставляется с предзаполненными демонстрационными данными.
Для отключения данной настройки перед разворачиванием стенда перейдите в папку \services\environments
в файлах ecos-microservices-postgresql.env и mongodb-app.env
в настройке WITH_DEMO_DATA
укажите false.
Установите Docker и Docker Compose на Вашу ОС
Клонируйте репозиторий:
git clone https://github.com/citeck/ecos-community-demo.git
В терминале:
перейдите в папку с клонированным репозиторием
cd полный путь до папки
запустите
docker-compose up -d
Подождите некоторое время (в зависимости от мощности системы) для того, чтобы система запустилась.
Перейдите в браузере по адресу http://ecos-community-demo/
Войдите в систему, используя следующие учётные данные:
Username: admin
Password: admin
При первом развертывании keycloak попросит сменить пароль:
Если необходимо еще раз сменить пароль, то см. инструкцию
Далее станет доступна домашняя страница Citeck:
Подготовка окружения CentOS 7.x для установки Citeck
Обновить систему и пакеты до последней актуальной версии:
yum update -y && yum upgrade -y
Отключить SELinux и перезагрузить сервер:
sed -i 's/enforcing/disabled/g' /etc/selinux/config
reboot
Устанавить Python:
yum install epel-release -y
yum install python3 -y && yum install python3-pip -y
Устанавить пакеты, для комфортной работы:
yum install -y mc yum-utils nano ethtool ntp ntpdate firewalld lvm2 device-mapper-persistent-data htop fail2ban mc wget screen pigz
Установить Docker Engine:
yum-config-manager --add-repo https://http://download.docker.com /linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli http://containerd.io
systemctl enable docker && systemctl start docker
Установить Docker Compose:
curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
В случае, если локальная сеть, может пересекаться с сетью docker, лучше предопределить подсеть docker. Сделать это можно в файле:
/etc/docker/daemon.json, переменная default-address-pools
{
"default-address-pools":
[
{"base":"172.19.0.0/16","size":24}
]
}
Следующим этапом необходимо получить комплект поставки, в который входят docker-compose.yaml и environments и поместить его на сервер.
git clone https://github.com/Citeck/ecos-community-demo.git && cd ecos-community-demo
После этого в директории, куда поместили проект, выполнить:
docker-compose pull
docker-compose up -d
Система будет инициализирована, и после полного запуска, будет готова к работе.
Настройка Proxy в Docker
Настройки прокси задаются в файле:
/etc/systemd/system/docker.service.d/http-proxy.conf
Если этого файла или папки нет, нужно их создать. Содержимое файла должно быть примерно таким:
[Service]
Environment="HTTP_PROXY=http://<USER_NAME>:<PASSWORD>@<PROXY_HOST>:<PROXY_PORT>"
Environment="HTTPS_PROXY=http://<USER_NAME>:<PASSWORD>@<PROXY_HOST>:<PROXY_PORT>"
Environment="NO_PROXY=localhost,127.0.0.1,ecos-app, ecos-apps-app, ecos-gateway-app, ecos-history-app, ecos-identity-app, ecos-integrations-app, ecos-logger-app, ecos-microservices-postgresql-app, ecos-model-app, ecos-notifications-app, ecos-process-app, ecos-proxy-app, ecos-registry-app, ecos-search-app, ecos-uiserv-app, mailhog-app, mongodb-app, node-exporter-app, only-office-app, portainer-agent-app, postgres-exporter-app, rabbitmq-app, zookeeper-app"
Также в раздел NO_PROXY можно добавить внутренние домены вашей компании (через запятую и также можно использовать звездочку например *.someco.com,
*.someco.ru
)
После добавления данного файла нужно перезапустить демон Docker
systemctl daemon-reload
systemctl restart docker
Подготовка окружения Ubuntu Server 24.04 LTS для установки Citeck
Установка Docker:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
## Чтобы установить последнюю доступную версию, выполните команду::
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
## Чтобы установить конкретную версию, выполните команду:
apt-cache madison docker-ce | awk '{ print $3 }'
VERSION_STRING={Your Specific version}
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
Настройка docker на запуск при старте системы:
sudo systemctl enable docker
Установка Docker-compose:
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Проверить:
docker-compose --version
На этом установка Docker Engine и Docker-Compose завершена.
Получаем конфигурации docker-compose, переходим в директорию с файлом docker-compose.yaml. Проходим аутентификацию в нужное нам docker registry - docker login.
Примечание
Registry URL и данные для аутентификации можно запросить у контактного лица со стороны Citeck.
Запуск Citeck ECOS:
docker-compose up -d
Установка ecos-community-demo
wget https://github.com/Citeck/ecos-community-demo/archive/refs/heads/master.zip
unzip master.zip
cd ecos-community-demo-master
docker-compose pull
Добавление ecos-community-demo в локальный hosts файл:
vim /etc/hosts - открываем файл
127.0.0.1 ecos-community-demo - производим запись в файл
:wq! - выходим из редактора vim
Запуск Community Demo:
docker-compose up -d
Примечание
Выполнять из директории ecos-community-demo-master
В случае, если локальная сеть, может пересекаться с сетью docker, лучше предопределить подсеть docker. Сделать это можно в файле /etc/docker/daemon.json
, переменная default-address-pools
{
"default-address-pools":
[
{"base":"172.19.0.0/16","size":24}
]
}
Подготовка окружения Debian 11 «Bullseye» для установки Citeck
Установка Docker:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
## Чтобы установить последнюю доступную версию, выполните команду::
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
## Чтобы установить конкретную версию, выполните команду:
apt-cache madison docker-ce | awk '{ print $3 }'
VERSION_STRING={Your Specific version}
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
Настройка docker на запуск при старте системы:
sudo systemctl enable docker
Установка Docker-compose:
wget https://github.com/docker/compose/releases/download/v2.29.1/docker-compose-Linux-x86_64
mv ./docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Примечание
Версию можно изменить на более актуальную, заменив v2.29.1
На этом установка Docker Engine и Docker-Compose завершена.
Получаем конфигурации docker-compose, переходим в директорию с файлом docker-compose.yaml. Проходим аутентификацию в нужное нам docker registry - docker login.
Примечание
Registry URL и данные для аутентификации можно запросить у контактного лица со стороны Citeck.
Запуск Citeck ECOS:
docker-compose up -d
Установка ecos-community-demo
wget https://github.com/Citeck/ecos-community-demo/archive/refs/heads/master.zip
unzip master.zip
cd ecos-community-demo-master
docker-compose pull
Добавление ecos-community-demo в локальный hosts файл:
vim /etc/hosts - открываем файл
127.0.0.1 ecos-community-demo - производим запись в файл
:wq! - выходим из редактора vim
Запуск Community Demo:
docker-compose up -d
Примечание
Выполнять из директории ecos-community-demo-master
В случае, если локальная сеть, может пересекаться с сетью docker, лучше предопределить подсеть docker. Сделать это можно в файле /etc/docker/daemon.json
, переменная default-address-pools
{
"default-address-pools":
[
{"base":"172.19.0.0/16","size":24}
]
}
Подготовка окружения Astra Linux Орел для установки Citeck
Примечание
Инструкция проверялась с Astra Linux Common Edition 2.12.46.
Установка Docker:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo printf "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable \n" > /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Настройка групп docker:
sudo groupadd docker
sudo usermod -aG docker $USER
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Установка Docker Compose:
wget https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64
mv ./docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Примечание
Версию можно изменить на более актуальную, заменив 1.27.4
Установка ecos-community-demo (выполняется в терминале, Alt+T):
git clone https://github.com/Citeck/ecos-community-demo.git && cd ecos-community-demo
docker-compose pull
Добавление ecos-community-demo в локальный hosts файл:
vim /etc/hosts - открываем файл
127.0.0.1 ecos-community-demo - производим запись в файл
:wq! - выходим из редактора vim
Запуск Community Demo:
Примечание
Выполнять из директории ecos-community-demo-master
docker-compose up -d
В случае, если локальная сеть, может пересекаться с сетью docker, лучше предопределить подсеть docker. Сделать это можно в файле /etc/docker/daemon.json
, переменная default-address-pools
{
"default-address-pools":
[
{"base":"172.19.0.0/16","size":24}
]
}
Подготовка окружения Ред ОС (Red OS) для установки Citeck
Примечание
Инструкция проверялась на РЕД ОС 7.3| Ядро Linux 5.15.72
Обновить пакеты и выключить SELINUX:
dnf update
echo 'SELINUX=disabled' > /etc/sysconfig/selinux
reboot
Установка Docker и Docker Compose:
sudo dnf install docker-ce docker-ce-cli docker-compose
systemctl enable docker
Установка ecos-community-demo (выполняется в терминале, Alt+T):
git clone https://github.com/Citeck/ecos-community-demo.git && cd ecos-community-demo
docker-compose pull
Запуск Community Demo:
docker-compose up -d
Примечание
Если встречается ошибка unknown log opt 'max-size' for journald log driver
, открыть /etc/docker/deamon.json
и изменить там "log-driver": "journald "
на "log-driver": "json-file"
Добавление ecos-community-demo в локальный hosts файл:
vim /etc/hosts - открываем файл
127.0.0.1 ecos-community-demo - производим запись в файл
:wq! - выходим из редактора vim
В случае, если локальная сеть, может пересекаться с сетью docker, лучше предопределить подсеть docker. Сделать это можно в файле /etc/docker/daemon.json
, переменная default-address-pools
{
"default-address-pools":
[
{"base":"172.19.0.0/16","size":24}
]
}
Переключение на BASIC аутентификацию вместо Keycloak
Если нужен простой способ настройки для доступа в систему минуя Keycloak, то можно настроить BASIC Auth (не рекомендуется для production сред).
nano ecos-community-demo-master/services/environments/ecos-proxy-app.env
заменить строкуENABLE_OIDC_FULL_ACCESS=true
наENABLE_OIDC_FULL_ACCESS=false
в этом же файле добавить -
BASIC_AUTH_ACCESS=admin:admin,fet:fet
Примечание
admin:admin,fet:fet
- это список пользователей, которые будут иметь доступ в систему.{{пользователь_0}}:{{пароль_0}},{{пользователь_1}}:{{пароль_1}}
После внесения изменений запустите проект.
docker-compose down
в директории ecos-community-demo-master
для остановки проекта
docker-compose up -d
в директории ecos-community-demo-master
для запуска проекта
Тестировать можно с локальной машины при наличии корректной записи в /etc/hosts
.
Данные для входа в ecos - admin
| admin
Сервисы Docker
По ссылке перечислены сервисы с точки зрения Docker’а и их настройки.
Внимание
Следующие контейнеры запускаются 1 раз:
ecos-community-demo-master-ecos-meetings-ecos-apps-1
ecos-community-demo-master-ecos-order-pass-ecos-apps-1
ecos-community-demo-master-ecos-common-data-list-ecos-apps-1
ecos-community-demo-master-ecos-assignments-ecos-apps-1
и далее находятся в статусе exited
Возможные проблемы
ОС Windows
Включение функции WSL 2 в Windows
Docker Desktop использует функцию динамического распределения памяти в WSL 2, чтобы значительно снизить потребление ресурсов. Кроме того, WSL 2 улучшает совместное использование файловой системы, время загрузки и предоставляет пользователям Docker Desktop доступ к некоторым новым интересным функциям.
Перед установкой WSL 2 необходимо включить необязательный компонент Платформа виртуальных машин.
В PowerShell ввести команду:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Скачать и установить пакет обновления ядра Linux:
Выбрать WSL 2 в качестве версии по умолчанию:
wsl --set-default-version 2
Проверить можно командой. Более подробная версия инструкции см. https://docs.microsoft.com/ru-ru/windows/wsl/install-win10
wsl --list --verbose
При установке Docker в окне конфигурации установите галочку в поле Use WSL 2 instead of Hyper-V (recommended). Более подробная версия инструкции см. https://docs.docker.com/docker-for-windows/wsl/
Порт 8080 уже занят
Citeck UI использует порт 8080 и, если этот порт уже занят другой программой, то можно получить ошибку:
«Error starting userland proxy: listen tcp 0.0.0.0:8080:bind: Only one usage of each socket address is normally permitted.»
Если команда netstat -ono (или netstat -ono | findstr 8080)
не находит, чем занят порт, то нужно скачать программу, например, CurrPorts и уже с ее помощью найти занятые порты.
Порт зарезервирован Windows
К примеру, каталог ecos-postgres использует порт 50432, но этот порт зарезервирован Windows. Проверить такие порты можно командой netsh int ipv4 show excludedportrange protocol=tcp
.
Команда покажет диапазон зарезервированных портов. Видно, что порт 50432 находится в данном диапазоне и поэтому при установке была получена ошибка:
«Cannot start service ecos-postgress: driver failed proogramming external connectivity on endpoint»
Чтобы это исправить, нужно в командной строке, запущенной с повышенными правами:
Остановить Hyper-V:
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
(выполнить перезагрузку)Добавить нужный порт в исключения:
netsh int ipv4 add excludedportrange protocol=tcp startport=50432 numberofports=1
Запустить Hyper-V:
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
(после потребуется перезагрузка)
Порт попадет в исключения, и подобной ошибки не возникнет.
Настройка дополнительных параметров WSL в Windows
MacOS
Запускаются не все контейнеры
Если при разворачивании приложения в docker запускаются не все контейнеры:
необходимо в настройках docker добавить путь /opt: