docker-compose: доступ из контейнера докера к локальному хосту - PullRequest
0 голосов
/ 22 мая 2018

У меня есть служба, которая работает внутри контейнера докера.Эта служба должна получить доступ к базе данных, которая запущена в другом кластере (я использую kubectl port-forward и после нее я получаю доступ к базе данных в localhost:5432)

Вот мой docker-compose файл

version: '3'

services:
  api:
    build: .
    ports:
      - "8000:8000"
      - "5432:5432"
    environment:
      - APP_PORT=8000 
      - DB_SERVER=localhost
      - DB_PORT=5432
      - DB_USER=postgres
      - DB_PASSWORD=mypassword 

Похоже, что перенаправление порта 5432 работает не так, как ожидалось, поскольку соединение с базой данных внутри контейнера завершилось неудачно.Не могли бы вы помочь мне понять, что происходит не так?

1 Ответ

0 голосов
/ 22 мая 2018

В текущем контексте localhost - это api адрес контейнера.Вы должны установить DB_SERVER для правильного адреса.Ваша служба и база данных должны находиться в одной и той же докерной сети, и тогда вы можете использовать внутренний преобразователь адресов докера.После этого вы должны установить DB_SERVER = postgres.Другой способ, вы можете установить DB_SERVER на ваш адрес хоста.

Вот как вы можете определить сеть в docker-compose: https://docs.docker.com/compose/networking/#use-a-pre-existing-network

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...