Подключиться к докерской БД внутри lambci docker-lambda - PullRequest
0 голосов
/ 30 октября 2019

Я использую lambci docker-lambda для локального запуска моего nodejs lambda. Лямбда выполняет вызовы к БД, которая во время разработки запускается в другом контейнере докера.

Поскольку лямбда и БД работают в отдельных контейнерах, доступ к БД через localhost: 5432 не работает.

Вопрос: Как настроить lambci так, чтобы он мог обращаться к другой локальной БД?

1 Ответ

1 голос
/ 30 октября 2019

Существует как минимум 2 способа решить эту проблему:

  1. Самое простое - подключить контейнер lambci к сети вашего хоста (используя --net=host). Пока ваш контейнер БД выставлен на порт хоста (!) 5432, когда lambci находится в сети хоста, он сможет получить доступ к базе данных на localhost:5432. NB порт может быть переменным, пока он непротиворечив, если DB был выставлен 9999:5432 на локальном хосте, тогда lambci получит доступ к нему на localhost:9999.
  2. Anальтернативный подход - подключить оба контейнера к одной и той же сети Docker (сначала необходимо создать сеть docker network create ${NAME}). При таком подходе lambci сможет ссылаться на БД по имени контейнера (возможно, db) и порту, то есть db:5432. Оба контейнера должны быть запущены (в ранее созданной сети), используя что-то похожее на docker run --network=${NAME}.... Это механизм, который используется Docker Compose.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...