Запуск PC в Docker
Содержание
Образы
Поддерживают PC с версии 3.5.
Доступны на hub.docker.com:
- secrius/pc_wildfly:v5-pgsql
- secrius/pc_wildfly:v5-oracle
- secrius/pc_wildfly:v5-mssql
5.2
Подготовка
БД
Создать БД PCS и PCSS.
Поддерживаемые — Postgres, Oracle, MS SQL.
Создать пользователя, под которым PC будет подключаться к БД. Необходимые привилегии CRUD + Create + Alter.
Структуру БД создавать не нужно. При первом подключении PC сам создаст все необходимые таблицы.
Размещение файлов модулей сервера
В соответствии с выбранной схемой включения модулей сервера в инфраструктуру (https://repo.paycontrol.org/server/doc/v5/infrastructure/), разместить файлы модулей (*.ear/*.war) в директории deployments соответствующих контейнеров. Модуль PCSS следует разместить в одном контейнере с PCS, однако, размещение в отдельном также допускается (при обеспечении их сетевой связности и требует для этого дополнительных настроек, не описанных в этом документе в настоящее время).
Запуск
Версия: 5.2.033.
Подключаемые тома:
- deployments — в эту директорию размещаются (*.ear/*.war) модули компонентов сервера PC. У пользователя, от имени которого запускается процесс в контейнере (1000:1000) должны быть права на чтение/запись в директорию;
- themes — нужна только для PCE, в случае необходимости размещать темы оформления для мобильного приложения PC;
- log — используется для записи основным процессом контейнера файлов журнала работы WildFly;
Переменные окружения модуля PCE:
- pc_url — адрес сервера PCS. Значение по умолчанию —
http://localhost:8080/pc-api/
; - pc_logRequests — включение журналирования запросов. Значение по умолчанию —
false
; - pc_locale — смена языка сообщений об ошибках, возвращаемых сервером мобильному приложению. Доступный вариант —
ru
. Значение по умолчаниюen
; - pc_themesPath — Используется для указания пути к директории, с помощью которой осуществляется публикация файлов тем для приложения PC. Значение по умолчанию —
/opt/wildfly/pc_themes/
;
Пример
Ниже приведены примеры файлов для схемы включения PCS, PCSS, PCP — в одном контейнере, PCE — в другом.
.env
PCS_DB_CONNECTION_URL=jdbc:postgresql://dbserver.example.com:5432/pcs
PCS_DB_USER=user
PCS_DB_PASSWORD=password
PCSS_DB_CONNECTION_URL=jdbc:postgresql://dbserver.example.com:5432/pcss
PCSS_DB_USER=user
PCSS_DB_PASSWORD=password
docker-compose.yml
version: '3.3'
services:
pc:
ports:
- 8080:8080
restart: unless-stopped
container_name: "pc_srv_int"
volumes:
- "/opt/pc/srv_int/deployments/:/opt/jboss/wildfly/standalone/deployments/:z"
- "/opt/pc/srv_int/log/:/opt/jboss/wildfly/standalone/log/:z"
- "/opt/pc/srv_int/pki/:/opt/pc/pki/:z"
environment:
- 'JAVA_OPTS=-Dfile.encoding=UTF-8'
- PCS_DB_USER
- PCS_DB_PASSWORD
- PCS_DB_CONNECTION_URL
- PCSS_DB_USER
- PCSS_DB_PASSWORD
- PCSS_DB_CONNECTION_URL
image: "secrius/pc_wildfly:v5-pgsql"
pce:
ports:
- 8081:8080
restart: unless-stopped
container_name: "pc_external"
volumes:
- "/opt/pc/external/deployments/:/opt/jboss/wildfly/standalone/deployments/:z"
- "/opt/pc/external/themes/:/opt/jboss/wildfly/pc_themes/:z"
- "/opt/pc/external/log/:/opt/jboss/wildfly/standalone/log/:z"
environment:
- 'JAVA_OPTS=-Dpc_url=http://pcs:8080/pc-api/ -Dpc_locale=ru -Dpc_themesPath=/opt/jboss/wildfly/pc_themes/ -Dfile.encoding=UTF-8'
image: "secrius/pc_wildfly:v5-pgsql"