Невозможно подключиться к БД Postgres, живущей в одном файле docker-compose, с приложением django в отдельном файле docker-compose
У меня есть большое монореповое Django приложение, которое я хочу разбить на два отдельных репозитория (один для обработки внешних api запросов, а другой для обработки моего front end, который я планирую показывать пользователям). Я бы хотел, чтобы оба приложения django имели доступ к одной и той же базе данных при локальном запуске. Есть ли способ сделать это? Я использую docker для обоих приложений и у меня проблемы с тем, что мое приложение django для фронт-энда может подключиться к БД Postgres, которую я установил в отдельном файле docker-compose, а не в том, который я создал для своего фронт-энда.
Файл внешнего API docker-compose (здесь создается докер-образ Postgres DB при запуске docker-compose up --build)
---
version: "3.9"
services:
db:
image: postgres:13.4
ports:
- "5432:5432"
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
api:
restart: always
build: .
image: &img img-one
command: bash start.sh
volumes:
- .:/app
ports:
- "8000:8000"
depends_on:
- db
env_file:
- variables.env
Передняя сторона docker-compose файл (Это тот, который я хочу иметь возможность подключиться к вышеуказанной БД):
---
version: "3.9"
services:
dashboard:
restart: always
build: .
image: &img img-two
volumes:
- .:/code
ports:
- "8010:8010"
depends_on:
- react-app
env_file:
- variables.env
react-app:
restart: always
build: .
image: *img
command: yarn start
env_file:
- variables.env
volumes:
- .:/app
- /app/node_modules
ports:
- "3050:3050"
Ниже приведена конфигурация базы данных, которую я установил во внешнем приложении django, которое я хочу подключить к БД, но я продолжаю получать connection refused ошибки, когда я пытаюсь запустить python manage.py runserver
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": os.environ.get("DB_NAME", "postgres"),
"USER": os.environ.get("DB_USERNAME", "postgres"),
"PASSWORD": os.environ.get("DB_PASSWORD", "postgres"),
"HOST": os.environ.get("DB_HOSTNAME", "db"),
"PORT": os.environ.get("DB_PORT", 5432),
}
}
Есть идеи, как решить эту проблему? (Для справки, я также попробовал изменить HOST на localhost вместо db, но все равно получил те же ошибки connection refused)