Я использую Couchbase java client SDK 2.7.9 и столкнулся с проблемой при попытке запустить автоматические интеграционные тесты. В таком тесте мы обычно используем случайные порты, чтобы иметь возможность запускать одно и то же на одном и том же подчиненном устройстве Jenkins (например, с помощью докера).
Но с клиентом мы можем указать много пользовательских портов, но не 8092, 8093, 8094 и 8095.
В популярных модулях TestContainers также упоминается, что этот порт должен оставаться статическим в модуле Couchbase: https://www.testcontainers.org/modules/databases/couchbase/ 1
По-видимому, эти порты также можно изменить на уровне сервера.
Пример:
Docker-compose.yml
version: '3.0'
services:
rapid_test_cb:
build:
context: ""
dockerfile: cb.docker
ports:
- "8091"
- "8092"
- "8093"
- "11210"
Образ докера — «couchbase:community-5.1.1».
Внутренне порты те, что написаны выше, но внешне они случайны. На уровне клиента можно настроить bootstrapHttpDirectPort и bootstrapCarrierDirectPort но видимо порты 8092 и 8093 взяты со стороны сервера (кто не знает какой порт ему присвоили).
Я хотел бы спросить вас, возможно ли изменить эти порты на уровне клиента, и если нет, серьезно рассмотреть возможность добавления этой функции.