Общие условия

Описание проблем при интеграции развернутого в Docker Корпоративного Сервера 2024 и Р7 команды (1.10.3 нативный инсталлятор).

Разворачивание КС 2024 производилось с использованием следующей инструкции:

Установка Корпоративный сервер 2024 через инсталлятор в docker-compose (Расширенная установка).


Подробное описание проблем и их решение

1. Порт RabbitMQ (5672) не проброшен наружу из Docker. Анализ файла /opt/r7-office-docker/template.yaml

Симптомы:

Приложение не может подключиться к RabbitMQ, хотя контейнер запущен.

Сообщение в логах Р7 Команды, либо в инсталляторе при настройке конфигурации с интеграцией к Корпоративному серверу 2024:

connect to 172.16.16.16 port 5672 (tcp) failed: Connection refused

[Скрипт установки] Невозможно подключиться к серверу RabbitMQ Подробнее: nc: connect to 172.16.16.16 port 5672 (tcp) failed: Connection refused OK

В логах addressbook появляется следующее сообщение:

java.net.ConnectException: Connection refused (Connection refused)

Порт 5672 не открыт на хосте:

root@cs24srv1:/opt/r7-office-docker/configs/api# docker ps -a | grep "5672"
faa4ea4082a8 downloads.r7-office.ru:9011/r7office/cs/cddisk-rabbitmq:2.0.2024.14752 "docker-entrypoint.s…" 2 days ago Up 5 seconds 4369/tcp, 5671/tcp, 15691-15692/tcp, 25672/tcp, 5672/tcp cs-rabbitmq
ddfe0ba123af downloads.r7-office.ru:9011/r7office/ds/ds-rabbitmq:2024.3.2.622 "docker-entrypoint.s…" 2 days ago Up 2 days 4369/tcp, 5671-5672/tcp, 15691-15692/tcp, 25672/tcp ds-rabbitmq
root@cs24srv1:/opt/r7-office-docker/configs/api# ss -tulnp | grep "5672"

Причина:

Некорректно конфигурируется шаблон для docker-compose файла.

Подтверждение:

Сегмент конфигурационного файла для cs-rabbitmq из /opt/r7-office-docker/template.yaml:

cs-rabbitmq:
  container_name: cs-rabbitmq
  environment:
    RABBITMQ_DEFAULT_PASS: guest
    RABBITMQ_DEFAULT_USER: guest
    RABBITMQ_NODE_PORT: '5672'
    r7_team_rabbit_pass: team
  hostname: cs-rabbit
  image: downloads.r7-office.ru:9011/r7office/cs/cddisk-rabbitmq:2.0.2024.14752
  networks:
  - net-cs
  restart: unless-stopped

Решение:

Авторизуйтесь с повышением привилегий (su - или sudo -i) на сервере, где установлен Корпоративный сервер 2024.

Откройте конфигурационный файл:

nano /opt/r7-office-docker/template.yaml

Отредактируйте секцию, отвечающую за конфигурацию cs-rabbitmq, добавьте секцию ports.

 cs-rabbitmq:
    container_name: cs-rabbitmq
    environment:
      RABBITMQ_DEFAULT_PASS: guest
      RABBITMQ_DEFAULT_USER: guest
      RABBITMQ_NODE_PORT: '5672'
      r7_team_rabbit_pass: team
    hostname: cs-rabbit
    image: downloads.r7-office.ru:9011/r7office/cs/cddisk-rabbitmq:2.0.2024.14752
    networks:
    - net-cs
    restart: unless-stopped
    ports:
    - '5672:5672'

Сохраните файл.

Выполните повторную установку контейнеров вручную, используя команду docker-compose и новый исправленный файл template.yaml:

 cd /opt/r7-office-docker
./runtime/docker-plugins/docker-compose -f template.yaml up --force-recreate -d -V --remove-orphans

2. Для OAuth2.0 КС24 использует файл /opt/r7-office-docker/configs/ssl/domain.pfx Данный файл не формируется автоматически

Симптомы:

Ошибка авторизации: invalid_token_response.

Пример ошибки:

Интеграция Р7 КС 2024 docker с Р7 Команда. Ошибка авторизации invalid_token_response

Или:

Интеграция Р7 КС 2024 docker с Р7 Команда. Ошибка авторизации invalid_token_response

Причина:

Отсутствует или некорректно сформирован файл /opt/r7-office/Api/domain.pfx.

Подтверждение:

1. Проверьте файл на хостовой машине

Убедитесь, что файл domain.pfx создан по инструкции и находится в нужной директории:

ls /opt/r7-office-docker/configs/ssl/domain.pfx

2. Проверьте наличие файла внутри контейнера

Выполните команду, чтобы убедиться, что файл доступен и внутри контейнера:

docker exec -it cs-api bash -c 'ls -l /opt/r7-office/Api/domain.pfx'

Если вы видите ошибку вида:

ls: cannot access '/opt/r7-office/Api/domain.pfx': No such file or directory

Это значит, что файл либо отсутствует, либо неправильно смонтирован.

Если вы не создавали свой собственный domain.pfx, то система может использовать стандартный (дефолтный) файл, как на хосте, так и в контейнере.

⚠ Важно: Использование стандартного файла не рекомендуется. Замените его на собственный, правильно сформированный файл по инструкции.

Решение:

1. На хостовой машине перейдите в каталог с сертификатами и ключами:

cd /opt/r7-office-docker/configs/ssl/

2. Откройте ранее подготовленные файлы для работы SSL.

Это файл с сертификатом для работы HTTPS, который включает в себя сертификат для WEB ресурса и промежуточный сертификат, если такой выдает удостоверяющий центр, и файл с закрытым ключом.

В данном примере это fullchainvolav.crt и volav.key

root@cs24srv1:/opt/r7-office-docker/configs/ssl# cat fullchainvolav.crt
-----BEGIN CERTIFICATE-----
MIIE9zCCA9+gAwIBAgISBnyA7N0Nw6cjJWYnJLCfjU9NMA0GCSqGSIb3DQEBCwUA
MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
EwNSMTAwHhcNMjUwNTI3MTE1MzI1WhcNMjUwODI1MTE1MzI0WjATMREwDwYDVQQD
Ewh2b2xhdi5ydTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANGqQfyt
deDTtsVOdHFdSkGbFU1YB0/MDpCui6rHALCitmwpgomwxTElO9Q5yDeltRjWhGdN
/WzVqrhpZnBiR+doSOMfhfob2HFEmbh88Ut9csnUC9uRYoyGBJ4KRZggqu6//XMr
oJWzAjnSk0qaBaz0MWyZAVgNO4IU/moava78zj1lHwzn8EQKGBgV7ZY9Unb1e9T/
GVZyfkoI0jCFoBkeEx15VkDTkRRwPj71MaCj3SFcspunT2CHL/SYLkY0JziujC1F
0AqM/o9w1bY5HJ2By84N/vzBpmtRp82YMdY22QZCmuBOSlbvsbLx1+CNS86rz4uS
+lhit4AnixB1pasCAwEAAaOCAiMwggIfMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUE
FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU
n2AiU+Y1GEhWNirLeoylL16g/74wHwYDVR0jBBgwFoAUu7zDR6XkvKnGw6RyDBCN
ojXhyOgwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzAChhdodHRwOi8vcjEwLmku
bGVuY3Iub3JnLzAfBgNVHREEGDAWggoqLnZvbGF2LnJ1ggh2b2xhdi5ydTATBgNV
HSAEDDAKMAgGBmeBDAECATAuBgNVHR8EJzAlMCOgIaAfhh1odHRwOi8vcjEwLmMu
bGVuY3Iub3JnLzc4LmNybDCCAQMGCisGAQQB1nkCBAIEgfQEgfEA7wB2AN3cyjSV
1+EWBeeVMvrHn/g9HFDf2wA6FBJ2Ciysu8gqAAABlxHMrtkAAAQDAEcwRQIgY58W
/rmlkimvcwZlwuL6ZhplmHJaiM1a9DzDRwUVlVcCIQD+sjp1vb90cNPlZFzpCT9u
vxYwx6hOORIESS09LOotQwB1AA3h8jAr0w3BQGISCepVLvxHdHyx1+kw7w5CHrR+
Tqo0AAABlxHMtnIAAAQDAEYwRAIgDyIZvsBp/oOqWtaCCefX8ohDXsm5PBSHSdoA
HXWpxRoCIE35s5m/PTxDapffr7mK3osgIx4gRwT1BMviv1A3q0AUMA0GCSqGSIb3
DQEBCwUAA4IBAQDIQ4gI6YpFPR20n+sUJdKyvvulN+deVnduQRFFSHh1fl4Y9YJB
4Db0guPs84lVLvnBgEKCNy2guZwC0MFED3i+uvNJ4hgWyiwyY0sBzO2xIUFthuZV
heh+HtCOoDw+a23ZmVhFZuA1XriLiFnduZHCR4RoGqVPHaCoUMEc+WdQH8gMh+Tq
7ayoOkhsFoSEwipoo0leaeWiaG4WMKWkVfcIzyW1JXy6FE46F1L5sdcWGZvxUPJS
AUralgdpivvNyb3NAFVn+8PZsNu3197AP36xJf1eZ+k4p0rcUQNMOEN/Nmg4c+5d
tUMKEnU1bW5axgZ09kBcQDh/VtxICAfuw6G5
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFBTCCAu2gAwIBAgIQS6hSk/eaL6JzBkuoBI110DANBgkqhkiG9w0BAQsFADBP
MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFy
Y2hhR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTAeFw0yNDAzMTMwMDAwMDBa
Fw0yNzAzMTIyMzU5NTlaMDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBF
bmNyeXB0MQwwCgYDVQQDEwNSMTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDPV+XmxFQS7bRH/sknWHZGUCiMHT6I3wWd1bUYKb3dtVq/+vbOo76vACFL
YlpaPAEvxVgD9on/jhFD68G14BQHlo9vH9fnuoE5CXVlt8KvGFs3Jijno/QHK20a
/6tYvJWuQP/py1fEtVt/eA0YYbwX51TGu0mRzW4Y0YCF7qZlNrx06rxQTOr8IfM4
FpOUurDTazgGzRYSespSdcitdrLCnF2YRVxvYXvGLe48E1KGAdlX5jgc3421H5KR
mudKHMxFqHJV8LDmowfs/acbZp4/SItxhHFYyTr6717yW0QrPHTnj7JHwQdqzZq3
DZb3EoEmUVQK7GH29/Xi8orIlQ2NAgMBAAGjgfgwgfUwDgYDVR0PAQH/BAQDAgGG
MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/
AgEAMB0GA1UdDgQWBBS7vMNHpeS8qcbDpHIMEI2iNeHI6DAfBgNVHSMEGDAWgBR5
tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKG
Fmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0gBAwwCjAIBgZngQwBAgEwJwYD
VR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVuY3Iub3JnLzANBgkqhkiG9w0B
AQsFAAOCAgEAkrHnQTfreZ2B5s3iJeE6IOmQRJWjgVzPw139vaBw1bGWKCIL0vIo
zwzn1OZDjCQiHcFCktEJr59L9MhwTyAWsVrdAfYf+B9haxQnsHKNY67u4s5Lzzfd
u6PUzeetUK29v+PsPmI2cJkxp+iN3epi4hKu9ZzUPSwMqtCceb7qPVxEbpYxY1p9
1n5PJKBLBX9eb9LU6l8zSxPWV7bK3lG4XaMJgnT9x3ies7msFtpKK5bDtotij/l0
GaKeA97pb5uwD9KgWvaFXMIEt8jVTjLEvwRdvCn294GPDF08U8lAkIv7tghluaQh
1QnlE4SEN4LOECj8dsIGJXpGUk3aU3KkJz9icKy+aUgA+2cP21uh6NcDIS3XyfaZ
QjmDQ993ChII8SXWupQZVBiIpcWO4RqZk3lr7Bz5MUCwzDIA359e57SSq5CCkY0N
4B6Vulk7LktfwrdGNVI5BsC9qqxSwSKgRJeZ9wygIaehbHFHFhcBaMDKpiZlBHyz
rsnnlFXCb5s8HKn5LsUgGvB24L7sGNZP2CX7dhHov+YhD+jozLW2p9W4959Bz2Ei
RmqDtmiXLnzqTpXbI+suyCsohKRg6Un0RC47+cpiVwHiXZAW+cn8eiNIjqbVgXLx
KPpdzvvtTnOPlC7SQZSYmdunr3Bf9b77AiC/ZidstK36dRILKz7OA54=

2. Создайте файл domain.pfx с пустым паролем. Для этого сформируйте и выполните команду вида:

openssl pkcs12 -export \
  -out domain.pfx \
  -inkey volav.key \
  -in fullchainvolav.crt \
  -password pass:

Для проверки можно воспользоваться командой:

openssl pkcs12 -info -in domain.pfx -passin pass:

Команда в своем результате может не отобразить закрытый ключ и выдать ошибку — это нормальное поведение.

3. Поместите сформированный файл domain.pfx в контейнер.

Далее, перезапустите контейнер:

docker cp /opt/r7-office-docker/configs/ssl/domain.pfx cs-api:/opt/r7-office/Api/domain.pfx
docker exec -it cs-api ls -l /opt/r7-office/Api/domain.pfx
docker stop cs-api
docker start cs-api

3. Отсутствие пользователя team для RabbitMQ в контейнере cs-rabbit. В веб интерфейсе отображается пользователь team с паролем team, но в самом RabbitMQ такого пользователя нет

Интеграция Р7 КС 2024 docker с Р7 Команда. Ошибка подключения к RabbitMQ с кодом 403.

Симптомы:

Ошибка подключения с кодом 403.

Сообщение в логах Р7 Команды, либо в инсталляторе при настройке конфигурации с интеграцией к Корпоративному серверу 2024:

ERROR: Невозможно подключиться к серверу RabbitMQ. Подробнее: 
ERROR[0003] session: cannot (re-)dial: Exception (403) Reason: "username or password not allowed": "amqp://team:team@172.16.16.16:5672"

Причина:

В RabbitMQ не был создан пользователь team.

Подтверждение:

docker exec -it cs-rabbitmq bash
root@cs-rabbit:/# rabbitmqctl list_users
Listing users ...
user tags
guest [administrator]

Решение:

Создание пользователя вручную внутри контейнера:

rabbitmqctl add_user team team
rabbitmqctl set_permissions -p / team ".*" ".*" ".*"

4. Очереди не существуют (ошибка 404)

Симптомы:

Приложение не может подписаться на очередь:

ERROR: Невозможно подключиться к серверу RabbitMQ. Подробнее:
ERROR[0000] error subscribing messages: subscribe failed: Exception (404) Reason: "NOT_FOUND - no queue 'Converted.Customer.OtherSystem' in vhost '/'"

Причина:

Очередь Converted.Customer.OtherSystem отсутствовала в RabbitMQ.

Подтверждение:

Очереди были созданы автоматически позже (возможно, самим приложением после получения сообщений):

------ message received on 2025-05-30T17:36:28+03:00 ------
exchange.......:
routingkey.....: Converted.Customer.OtherSystem
...
RabbitMQ queue Converted.Customer.OtherSystem exists

Решение:

Выполните перезагрузку Корпоративного сервера 2024, далее выполните синхронизацию нажатием кнопки Синхронизировать.

Интеграция Р7 КС 2024 docker с Р7 Команда. Кнопка Синхронизировать.

После успешного старта КС2024, выполните на сервере Управления Р7 Команды рестарт службы addressbook.service:

systemctl restart addressbook.service
Была ли полезна статья?
Позвольте нам стать лучше