Docker AspNet Core Couchbase

#visual-studio #docker #asp.net-core #windows-10 #couchbase

#visual-studio #docker #asp.net-ядро #windows-10 #couchbase

Вопрос:

У меня есть API .net core, который включает в себя необходимый установленный couchbase-sdk. api поддерживает docker через Visual studio. Я добавил раздел couchbase в файл docker-compose для использования couchbase, когда я запускаю команду docker-compose up, работают как api, так и couchbase. Я могу просматривать пользовательский интерфейс couchbase.

Вопрос: какой будет моя строка подключения в файле appsettings.json для подключения к этому кластеру couchbase, потому что он работает внутри docker, который будет иметь свои IP-адреса. Я не могу просто перейти на localhost: 8091?

В файле compose, как мне установить имя пользователя и пароль, корзину по умолчанию для использования в couchbase, я просмотрел документы в docker / couchbase и ничего не смог найти, в Google также не удалось найти много документов об этом.

введите описание изображения здесь

Ответ №1:

Вы должны использовать имя хоста, а не IP, и это имя хоста будет именем службы в файле docker-compose.yml. Другими словами, используйте db .

Комментарии:

1. Пожалуйста, смотрите Комментарий ниже. Я думаю, что необходимо выполнить какую-то настройку в файле compose, чтобы указать Couchbase использовать определенный сегмент и установить имя пользователя и пароль. Я не знаю, что это за переменные ENV..

2. @OptimusPrime Я не думаю , что для этого есть переменные среды, это то, что я пытался сделать в своем ответе. Я думаю, вам нужно написать скрипт для использования cli Couchbase или REST для этого. Я попросил некоторых инженеров в Couchbase взглянуть и поправить меня, если я ошибаюсь.

Ответ №2:

Всю документацию о Couchbase в Docker можно найти здесь: https://docs.couchbase.com/server/6.0/install/getting-started-docker .html и здесь также есть некоторая информация для быстрого запуска: https://hub.docker.com/_/couchbase

Когда вы указываете «строку подключения» для Couchbase, обычно это IP-адрес или сетевой адрес одного или нескольких узлов Couchbase. Поскольку вы используете docker-compose, я думаю, что вместо этого вы можете использовать «db».

Что касается других ваших вопросов: «Как мне установить имя пользователя и пароль, корзину по умолчанию для использования в couchbase» -> в настоящее время я не знаю способа сделать это с помощью docker или docker compose, используя готовые образы docker, предоставляемые Couchbase. Если вы хотите автоматизировать это, вы можете создать свой собственный образ docker (на основе образа Couchbase), который запускает скрипт (подробности слишком длинные для этого ответа SO, но вы могли бы проверить это сообщение в блоге, например).

Кроме того, существует оператор Kubernetes, который способен выполнять именно это (только для Couchbase Enterprise), что, я думаю, не слишком полезно, если вы настроены на использование docker-compose.

Комментарии:

1. В моем проекте у меня есть следующий пакет nuget «Couchbase. Расширения. DependencyInjection». Я установил для строки подключения значение «db», и когда я пытаюсь использовать корзину образцов «travel-sample», я получаю следующую ошибку: «Couchbase. Конфигурация. Сервер. Сериализация. Исключение BootstrapException: ‘Не удалось выполнить загрузку — проверьте внутренние исключения для получения подробной информации. (Ошибка аутентификации для пользователя ‘travel-sample’) (Не удалось выполнить загрузку с помощью CCCP. (Ошибка аутентификации для пользователя ‘travel-sample’)) » Теперь я думаю, что перед запуском контейнера в файле компоновки необходимо выполнить некоторую настройку. необходимо установить некоторые переменные ENV?

2. Возможно, вы захотите опубликовать этот код. Похоже, вы не указали учетные данные для аутентификации.

3. Я попробовал несколько способов предоставить учетные данные для аутентификации, я также следил за статьей, которую вы опубликовали выше, чтобы создать образ на основе образа couchbase, по-прежнему безуспешно, взгляните на код, вот репозиторий » github.com/bin-debug/MicroServiceTest »

4. @OptimusPrime Я думаю, что одна из проблем здесь: github.com/bin-debug/MicroServiceTest/blob/master/MicroSvr /… — Во-первых, я бы рекомендовал использовать Servers вместо ConnectionString . Во-вторых, вы не указали никаких учетных данных. Обычно вы указываете имя пользователя и пароль (которые вам нужно сначала создать в Couchbase)

5. Использование серверов внедрения зависимостей couch base принимает список URI. Также я попытался выяснить, поставляется ли couch base с именем пользователя и паролем по умолчанию, и я ничего не смог найти об этом. Когда вы запускаете контейнер, вы должны настроить его, создав имя пользователя и пароль. Я не уверен, что вы также можете передать ему переменные среды в моем файле docker. Я не думаю, что кто-то успешно это сделал…