Монго как набор реплик в тестовых контейнерах в .NETC#

Место общения программистов C#
Anonymous
Монго как набор реплик в тестовых контейнерах в .NET

Сообщение Anonymous »

Я пытаюсь запустить Mongo в Docker, используя Testcontainers в dotnet. У меня нет проблем при использовании следующего кода:

Код: Выделить всё

        Container = new MongoDbBuilder()
.WithPortBinding("27017")
.Build();
Но с этим MongoDbBuilder по умолчанию я не могу запустить его как набор реплик. Я обнаружил, что мне нужно запустить его как построитель контейнеров с собственным изображением:

Код: Выделить всё

        Container = new ContainerBuilder()
.WithImage("mongo:6.0")
.WithEntrypoint("mongod")
.WithCommand("--replSet", "rs0")
.WithPortBinding("27017")
.Build();
Затем я инициализирую набор реплик как:

Код: Выделить всё

    var result = Container.ExecAsync(new List
{
"mongosh", "--eval", "rs.initiate()"
}).GetAwaiter().GetResult();
Когда я пытаюсь выполнить какую-либо операцию с mongo в коде dotnet, я получаю ошибку тайм-аута. Когда я запускаю его в режиме отладки и пытаюсь подключиться к созданному докеру с помощью клиента Mongo (я использую DataGrip), я тоже получаю ошибку тайм-аута. Когда я подключаюсь напрямую к консоли контейнера Docker с помощью mongosh, это работает.
Запускаемое изображение Docker:
Изображение

Настройки подключения в клиенте Mongo:
Изображение

Когда я использую MongoDbBuilder, как уже говорилось в начале, работает клиент Mongo со строкой подключения.

Подробнее здесь: https://stackoverflow.com/questions/780 ... ers-in-net

Вернуться в «C#»