Не создается база данных Postgresql в Docker

Есть docker-compose.yaml файл:

version: '3.7'
services:
  app: 
    build: .
    container_name: backend

    environment:
      DB_USER: filmass
      DB_HOST: pg_db
      DB_PASSWORD: 316497258
      DB_NAME: film_assistant

    ports:
      - "8008:8000"
    command: bash -c "uvicorn app.main:app --host 0.0.0.0"

    restart: always
  
  pg_db:
    image:  postgres:13
    ports:
      - 5432:5432
    volumes:
      - ./data:/var/lib/postgresql/data/

    environment:
      POSTGRES_USER: filmass
      POSTGRES_DB: film_assistant
      POSTGRES_PASSWORD: 316497258
    
    restart: always

Проблема в том, что, когда backend пытается присоединиться к Бд film_assistant получает ошибку, о том что такой бд нет.

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL:  database "film_assistant" does not exist

Что выдает БД в docker

pg_db_1  | 2022-03-15 14:26:07.732 UTC [26] LOG:  invalid record length at 0/15CA600: wanted 24, got 0
pg_db_1  | 2022-03-15 14:26:07.732 UTC [26] LOG:  redo done at 0/15CA588
pg_db_1  | 2022-03-15 14:26:07.906 UTC [1] LOG:  database system is ready to accept connections
pg_db_1  | 2022-03-15 14:26:08.649 UTC [35] FATAL:  database "film_assistant" does not exist

Посмотрев ошибку в интернете, понял, что у меня во 1 не создается volume(может связано с этим) Также ошибка сообщает что как раз volume создан неверно или container. Попробовав решения, которые были в аналогичных вопросах, понял что ничего не получилось. там советовали удалить container, image, volume и создать заново, несколько раз попробовал ничего не вышло. Но что самое странное еще вчера все работало, то есть и база была создана и подключался и я в ней спокойно работал. Но ошибочно удалил папку data, которая создается при запуске docker, я запустил скрипт еще раз, настроил pg_hba.conf также как и до этого, понял что теперь все не работает. И не знаю как даже это починить.

что лежит в папке ./data


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

Автор решения: Dazai_22

Так как и выше написали в комментариях я явно объявил volumes. и соответственно в pg_db в volumes изменил путь. вот итоговый docker-compose.yaml

version: '3.7'
services:
  app: 
    build: .
    container_name: backend

    environment:
      DB_USER: filmass
      DB_HOST: pg_db
      DB_PASSWORD: 316497258
      DB_NAME: film_assistant

    ports:
      - "8008:8000"
    command: bash -c "uvicorn app.main:app --host 0.0.0.0"

    restart: always
  
  pg_db:
    image:  postgres:13
    ports:
      - 5432:5432
    volumes:
      - data:/var/lib/postgresql/data

    environment:
      POSTGRES_USER: filmass
      POSTGRES_DB: film_assistant
      POSTGRES_PASSWORD: 316497258
    
    restart: always
  
volumes: 
  data:
→ Ссылка