Развертывание BPMSoft через Docker на Microsoft
Windows
В BPMSoft, начиная с версии 1.7, есть возможность развернуть приложение с использованием Docker-образа.
Таблица 1 — Ограничения к веб-серверу и серверу базы данных
| Платформа | База данных | Сервер кэширования | Операционная система | Версия Docker Compose |
| .NET 8 | PostgreSQL | Redis | Актуальные операционные системы семейства Linux, заявленные в системных требованиях |
2.3.0 и выше.
Обновление Docker Compose описано в официальной документации |
Развертывание на Windows
Перед развертыванием BPMSoft через Docker выполните следующие шаги:
- Разархивируйте в любое удобное место архив с файлами для развертывания приложения в Docker.
- Настройте источник образов. Авторизуйтесь на ресурсе repo.bpmsoft.ru, используя команду:
docker login repo.bpmsoft.ru
- Заполните параметры в файле .env. Этот файл расположен в папке deploy.
Таблица 2 — Параметры в файле .env
| Параметр | Значение |
| Deployment_Files |
"-f docker-compose.yml"
Используйте кавычки для значений, чтобы избежать ошибок из-за пробелов |
| BPMSoft_Image |
Укажите название образа и тэг в формате [Image]:[Tag]. Image обозначает тип сборки, Tag — версию.
Доступные образы можно посмотреть в реестре Docker-образов в ресурсе repo.bpmsoft.ru |
| BPMSoft_Port | Укажите порт хоста для развертывания приложения |
| BPMSoft_Container_Port |
Укажите внутренний порт контейнера.
Варианты значений:
|
| Postgres_Host |
Для подключения к существующей базе данных: введите адрес хоста, где она развернута. Если база данных находится на том же хосте, что и Docker, используйте значение "host.docker.internal".
Если нужно развернуть новую базу данных: укажите значение "postgres" |
| Postgres_DB |
Для подключения к существующей базе данных укажите название имеющейся базы данных.
Если нужно развернуть новую базу данных, введите ее название. Система создаст базу с указанным именем |
| Postgres_Port |
Для подключения к существующей базе данных укажите порт хоста, где работает PostgreSQL.
Если нужно развернуть новую базу данных, укажите порт хоста для установки PostgreSQL |
| Postgres_User |
Для подключения к существующей базе данных укажите имя пользователя, имеющего доступ к базе данных.
Если нужно развернуть новую базу данных, укажите имя пользователя, который будет создан. Через него будет осуществляться доступ к базе данных |
| Postgres_Password |
Для подключения к существующей базе данных укажите пароль пользователя базы данных.
Если нужно развернуть новую базу данных, укажите пароль пользователь, через которого будет осуществляться доступ к базе данных |
| Cache_Host |
Для подключения к существующему серверу кэширования укажите адрес хоста, на котором будет развернут сервер кэширования. Если сервер кэширования находится на том же хосте, что и Docker, используйте значение "host.docker.internal".
Если нужно развернуть новый сервер кэширования, укажите значение "redis" |
| Cache_Port |
Для подключения к существующему серверу кэширования укажите порт хоста, на котором развернут сервер кэширования.
Если нужно развернуть новый сервер кэширования, укажите значение "6379". Порт будет использован как порт контейнера внутри сети docker |
- Для восстановления базы данных из резервной копии измените параметры в файле .env.
Таблица 3 — Параметры в файле .env для восстановления базы данных из резервной копии
| Параметр | Значение |
| Deployment_Option |
К существующему значению добавьте: "-f docker-compose.db-restore.yml"
Используйте кавычки для значений, чтобы избежать ошибок из-за пробелов |
Будет создан контейнер, который запустит восстановление базы данных из резервной копии.
- Для развертывания сервера кэширования измените параметры в файле .env.
Таблица 4 — Параметры в файле .env для развертывания сервера кэширования
| Параметр | Значение |
| Deployment_Option | К существующему значению добавьте: "-f docker-compose.cache.yml". Используйте кавычки для значений, чтобы избежать ошибок из-за пробелов |
- Для развертывания базы данных измените параметры в файле .env.
Таблица 5 — Параметры в файле .env для развертывания базы данных
| Параметр | Значение |
| Deployment_Option | К существующему значению добавьте: "-f docker-compose.db.yml". Используйте кавычки для значений, чтобы избежать ошибок из-за пробелов |
| Postgres_Data_Path | Укажите путь до папки, в которой будут храниться файлы базы данных |
- Для работы по HTTPS выполните следующие шаги:
- Рядом с директорией deploy создайте директорию app.
- Создайте папку Certificates в директории app.
- Добавьте сертификат в папку Certificates.
- Измените параметры в файле .env:
Таблица 6 — Параметры в файле .env для подключения по HTTPS
| Параметр | Значение |
| SSL | Укажите значение y |
| Cert_Path | Укажите путь к pfx-сертификату относительно папки app. Файл должен находиться в директории app/Certificates |
| Cert_Pass | Укажите пароль от pfx-сертификата |
- Запустите контейнеры, выполнив команду:
docker compose [Deployment_Files] up -d
- Подождите пока все контейнеры запустятся и успешно пройдут проверку работоспособности (health check).
Логирование
Для просмотра логов контейнера выполните команду:
docker logs [название контейнера]
Логи приложения BPMSoft находятся в папке Logs основного приложения. Подробнее: Логирование NLog
Изменение портов приложения внутри контейнера
При изменении портов приложения внутри контейнера в appsettings.json нужно обновить переменные среды в файле .env в папке deploy:
- Изменить BPMSoft_Container_Port — указать порт внутри контейнера, через который можно получить доступ к приложению.
- Добавить или изменить переменные, участвующие в формировании адреса, по котором проходит healthcheck контейнера:
- HealthCheck_BPMSoft_Container_Port — порт внутри контейнера, по которому есть доступ к приложению;
- HealthCheck_BPMSoft_Container_Protocol — протокол, использующий порт из переменной HealthCheck_BPMSoft_Container_Port.
После редактирования файла .env перезапустите контейнер с приложением. Для этого выполните команду в папке deploy, заменив [Deployment_Files] значением переменной Deployment_Files из файла .env:
docker compose [Deployment_Files] up bpm-app -d
Обновление BPMSoft
Описание процесса обновления BPMSoft, развернутого через Docker, представлено в статье Обновление BPMSoft, развернутого через Docker.