Docker

Уровень сложности: средний

Запуск PassOffice в виде Docker-контейнера доступен только для Linux.

Требования

Установите Docker и Docker Compose.

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

Рекомендуется использовать папку /srv/passoffice:

mkdir /srv/passoffice
export PASSOFFICE_HOME=/srv/passoffice

Для того, чтобы переменная PASSOFFICE_HOME была доступна во время следующей терминальной сессии, выполните команду:

echo "export PASSOFFICE_HOME=/srv/passoffice" >> ~/.bashrc

Контейнеры PassOffice будут использовать следующие смонтированные папки для хранения постоянных данных:

ПапкиИспользование

$PASSOFFICE_HOME/data

Данные БД Postgres

$PASSOFFICE_HOME/logs

Логи сервера PassOffice

$PASSOFFICE_HOME/licence

Файлы лицензии

$PASSOFFICE_HOME/config

Файлы настроек

Загрузка

Docker-образы PassOffice доступны по ссылке passoffice.ru/download

Для получения пароля доступа обратитесь к вашему поставщику или на почту support@passoffice.ru

  1. Скачайте docker-образы с файлового сервера по полученной ссылке на устройство, которое имеет доступ к Интернет. Вам требуются файлы passoffice-{version}.tar, wdm.tar и postgres-15-alpine.tar и nginx.tar.

  2. Скопируйте архивы с docker-образами на сервер PassOffice в папку $PASSOFFICE_HOME любым удобным способом.

  3. Перейдите в папку $PASSOFFICE_HOME и выполните импорт docker-образов из архивов, введя команды (вместо {version} укажите версию PassOffice):

cd $PASSOFFICE_HOME
docker load --input passoffice-{version}.tar
docker load --input wdm.tar
docker load --input postgres-15-alpine.tar
docker load --input nginx.tar
  1. Готово! Приступайте к запуску.

Запуск

Для получение файлов лицензии обратитесь к вашему поставщику или на почту support@passoffice.ru

Настройка окружения

При помощи Docker Compose вы можете легко настроить, установить и обновить PassOffice на базе Docker.

  1. Перейдите в папку $PASSOFFICE_HOME, создайте папку license и скопируйте в нее файлы лицензии Licence.bin и HWLicence.bin любым удобным способом:

cd $PASSOFFICE_HOME
mkdir $PASSOFFICE_HOME/licence/
cp Licence.bin HWLicence.bin $PASSOFFICE_HOME/licence/
  1. Создайте файл .env (вместо {version} укажите версию PassOffice):

# PassOffice
PASSOFFICE_VERSION={version}
PASSOFFICE_HOSTNAME=passoffice.example.ru
PASSOFFICE_PORT=4201

# Database
DB_HOST=postgres
DB_NAME=passoffice
DB_USER=passoffice
DB_PASSWORD=passoffice

# Licence Web Manager
LWM_URL=http://lwm:7010
  1. Создайте файл docker-compose.yml с следующим содержимым:

docker-compose.yml
version: '3.9'

services:

  passoffice:
    image: 'passoffice/passoffice:${PASSOFFICE_VERSION}'
    restart: unless-stopped
    depends_on:
      - lwm
      - nginx
    environment:
      DB_HOST: '${DB_HOST}'
      DB_NAME: '${DB_NAME}'
      DB_USER: '${DB_USER}'
      DB_PASSWORD: '${DB_PASSWORD}'
      LWM_URL: '${LWM_URL}'
      VIRTUAL_HOST: '${PASSOFFICE_HOSTNAME}'
      VIRTUAL_PORT: '${PASSOFFICE_PORT}'
    expose:
      - ${PASSOFFICE_PORT}
    volumes:
      - './logs/passoffice:/var/log/passoffice' # PassOffice Logs
      - './licence:/app/bin/license' # PassOffice Licence File
      - '/tmp/passoffice:/app/bin/activemq-data/localhost/tmp_storage' # ActiveMQ Tmp Storage

  lwm:
    image: 'passoffice/wdm:latest'
    restart: unless-stopped
    hostname: lwm
    volumes:
      - './logs/wdm:/wdm/Logs'
      - './licence:/wdm/Licence'
    ports:
      - '7010:7010'
    devices:
      - /dev/bus/usb:/dev/bus/usb # Sentinel Hardlock
      
  postgres:
    image: 'postgres:15-alpine'
    restart: unless-stopped
    environment:
      POSTGRES_USER: '${DB_USER}'
      POSTGRES_PASSWORD: '${DB_PASSWORD}'
      POSTGRES_DB: '${DB_NAME}'
    volumes:
      - './data:/var/lib/postgresql/data'

  nginx:
    image: 'nginxproxy/nginx-proxy:1.4-alpine'
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - '/var/run/docker.sock:/tmp/docker.sock:ro'
      - './logs/nginx:/var/log/nginx'
      - './config/nginx/certs/:/etc/nginx/certs'

Запуск сервера PassOffice

  1. Убедитесь, что вы находитесь в папке с файлом docker-compose.yml и запустите PassOffice:

docker compose up -d
  1. Для просмотра лога работы сервера PassOffice выполните команду:

docker compose logs -f
  1. Когда сервер PassOffice будет готов принимать входящие запросы, в логах появится надпись:

*************************************
     PassOffice Server is started     
*************************************
  1. Сервер PassOffice доступен через веб-браузер по адресу http://passoffice.example.ru

В случае возникновения проблем с запуском отправьте запрос на почту support@passoffice.ru

Остановка сервера

Убедитесь, что вы находитесь в папке с файлом docker-compose.yml и выполните команду:

docker compose down

Аварийное завершение работы серверного приложения PassOffice может повлечь за собой некорректное отключение от ключа аппаратной защиты или, в худшем случае, повреждение данных в БД.

Last updated