Подключение базы данных в Docker.(psycopg2.OperationalError) could not translate host name "postgres" to address: Temporary failure in name resolution

Не получается подключить БД к приложению в docker-compose.

Dockerfile

FROM python:3.11

RUN mkdir /fastapi_app

WORKDIR /fastapi_app

COPY requirements.txt .

RUN pip install -r requirements.txt

COPY . .

Docker-compose

version: "3.7"
services:
  db:
    container_name: postgres
    image: postgres:alpine3.18
    restart: always
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=postgres
    ports:
      - 5432:5432
    networks:
      - custom
    env_file:
      - backend/.env
  app:
    build:
      context: /backend
    env_file:
      - backend/.env
    container_name: fastapi_app
    command: ["/fastapi_app/docker/app.sh"]
    ports:
      - 9999:8000
    depends_on:
      - db    
networks:
  custom:
    driver: bridge

app.sh

#!/bin/bash

alembic upgrade head

cd backend

gunicorn main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind=0.0.0.0:8000

.env

DB_HOST=postgres
DB_PORT=5432
DB_NAME=postgres
DB_USER=postgres
DB_PASS=postgres

Приложение запускается, БД запускается, но нет подключения к БД, ошибка:

 sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not translate host name "postgres" to address: Temporary failure in name resolution

Ответы (0 шт):