Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Миграция КС2019 docker версия в КС2024 docker версия релиз 4400

Обновлено: 26.12.25

Подготовка

0. Предварительные условия миграции

Уточнение

Убедитесь, что Docker и необходимые образы установлены на обоих серверах.

Уточнение

Откройте сетевые взаимодействия между КС19 и КС24 по портам 3306 (MySQL), 2049 (NFS), и 15672 (RabbitMQ).

Уточнение

В данной инструкции:

  • 192.168.24.102 — IP-адрес Корпоративный сервер 2019 docker
  • 192.168.24.22 — IP-адрес Корпоративный сервер 2024 docker

1. Останавливаем сервер документов на обоих серверах и создаем пользователя на сервере с КС2024

Для остановки сессий с документами выполняем скрипт на обоих серверах внутри контейнера командами (Корпоративный сервер 2024 docker):

docker exec ds-app bash /usr/bin/documentserver-prepare4shutdown.sh

Создаем пользователя для миграции и добавляем его в группу docker:

useradd -u 1999 -G docker cddisk

Аналогично завершаем сессии документов для Корпоративного сервера 2019 docker:

docker exec r7 bash /usr/bin/documentserver-prepare4shutdown.sh

Проверяем, что файлы не открываются на редактирование.

2. Работы для интеграции на Корпоративном сервере 2019

2.1 Создайте пользователя в БД r7-office с правами Select

2.1.1 Войдите в контейнер КС2019:
docker exec -it r7 bash
2.1.2 Подключитесь к MySQL:
mysql -u root -p

Узнаём пароль от root MySQL командой:

grep -oP 'Password=\K[^;]+' /var/www/r7-office/WebStudio/web.connections.config
2.1.3 Создайте пользователя cddisk с правами SELECT:
CREATE USER 'cddisk'@'192.168.24.22' IDENTIFIED WITH mysql_native_password BY 'StrongSecurityPassword';
GRANT SELECT ON `r7-office`.* TO 'cddisk'@'192.168.24.22';
FLUSH PRIVILEGES;
\q

2.1.4 Выйдите из контейнера:

mysql -u root -p

2.2 Предоставление доступа к файлам

2.2.1 Установите nfs сервер:
# .deb
apt install nfs-kernel-server -y
# .rpm
yum install nfs-utils nfs4-acl-tools
# ALT Linux
apt-get install nfs-server
2.2.2 Запустите службу nfs:
systemctl start nfs-server
systemctl enable nfs-server
2.2.3 Откройте файл /etc/exports
nano /etc/exports
2.2.4 Добавьте строку в файл /etc/exports:
/mnt/r7/app/r7-office/www/r7-office/Data/Products/Files/ ip_docker_cs24/32(rw,nohide,all_squash,anonuid=1999,anongid=128,no_subtree_check)

Где,

  • ip_docker_cs24 — ip адрес сервера с докер версией Корпоративного сервера 2024;
  • anonuid=1999 — указываем 1999, если выполнялось создание нового пользователя cddisk;
  • anongid=128 — указываем id группы докер;
  • путь в начале указывается до директории со структурой документов (в примере, если по умолчанию был выбран путь при установке Корпоративного сервера 2019, если нет, заменить /mnt/r7/ на фактический путь).

Посмотреть uid и gid возможно командой:

id cddisk
2.2.5 Примените изменения:
exportfs -ra

3. Работы для интеграции на Корпоративном сервере 2024

3.1 Проверка доступ к БД КС2019 и NFS

telnet 192.168.24.102 3306
telnet 192.168.24.102 2049

Где,

  • 192.168.24.102 — ip сервера Корпоративный сервер 2019;
  • 3306 — порт для MySQL;
  • 2049 — порт NFS.

3.2 Доступ к файлам

3.2.1 Установите клиент nfs:
# для deb
sudo apt-get install nfs-common
# для yum
sudo yum install nfs-utils
# ALT Linux
sudo apt-get install nfs-utils
3.2.2 Создайте каталог:
Важно

Эта команда создаст папку на вашем сервере, в которую будут монтироваться файлы с сервера «Корпоративный сервер 2019»

192.168.24.102:/mnt/r7/app/r7-office/www/r7-office/Data/Products/Files/ /mnt/cs19 nfs defaults 0 2

Где,

  • 192.168.24.102 — ip сервера с Корпоративным сервером 2019;
  • /mnt/r7/app/r7-office/www/r7-office/Data/Products/Files/ — имя каталога, который сделали сетевым;
  • /mnt/cs19 — куда монтируется.
Важно

Замените StrongSecurityPassword на ваш реальный пароль

3.2.4 Чтобы примонтировать сетевой каталог указанный на этапе 3.2.3 без перезагрузки сервера, выполните команды:
systemctl daemon-reload
mount -a

3.3 Добавляем порты rabbitmq

3.3.1 Откроем файл docker-compose-client.yml, расположенный в каталоге cddisk:

Добавляем в конфигурацию rabbitmq порты:

rabbitmq:
  env_file:
    - .env.overrides
    - .env.defaults
  image: cddisk-rabbitmq:latest
  restart: unless-stopped
  container_name: rabbitmq
  hostname: rabbitmq
  environment:
    - RABBITMQ_DEFAULT_USER=${r7_rabbitmq_user}
    - RABBITMQ_DEFAULT_PASS=${r7_rabbitmq_pass}
  ports:
    - 5672:5672

Порт слева можно указать другой.

Добавляем файл и директорию внутрь контейнера

Файл извлекаем из контейнера командой, находясь в директории cddisk:

docker cp processing:/opt/r7-office/Processing/appsettings.json ./

или заменив ./ на путь к директории cddisk.

Откроем файл appsettings.json на редактирование и изменим строку «CommunityRepository» к виду:

"ConnectionStrings": {
  "R7StorageServerUserActions": "Database=postgres;Username=postgres;Password=pg_pass;Host=postgres;Port=5432;",
  "R7StorageServer": "Database=postgres;Username=postgres;Password=pg_pass;Host=postgres;Port=5432;",
  "CommunityRepository": "Server=192.168.24.102;UserID=cddisk;Password=StrongSecurityPassword;Database=r7-office"

где 

  • 192.168.24.102 — ip адрес сервера КС2019
  • cddisk — пользователь и его пароль, созданный в пункте 2.1.3

После в файле docker-compose-client.yml в блок processing добавляем volumes:

processing:
  env_file:
    - .env.overrides
    - .env.defaults
  image: cddisk-processing:latest
  container_name: processing
  hostname: processing
  restart: unless-stopped
  depends_on:
    postgres:
      condition: service_healthy
  volumes:
    - /mnt/cs19:/mnt/cs19:ro
    - ./appsettings.json:/opt/r7-office/Processing/appsettings.json

После сохранения изменений выполняем:

docker-compose -f docker-compose-client.yml up -d && docker restart ds-app

И убеждаемся, что контейнеры пересоздались и запущены

Запускаем миграцию

Для этого открываем в браузере адрес

https://cddisk.domain.ru/api/v1/ExportFromCs/Start ↗

где cddisk.domain.ru — адрес модуля Р7-Диск у Корпоративный сервер 2024