Проблема Docker и Django Postgresql

В настоящее время я изучаю, как реализовать docker с Django и Postgres DB. Каждый раз, когда я пробовал, я выполнял следующую команду:

docker compose up --build -d --remove-orphans

Хотя я вижу, что все мои изображения запущены. Каждый раз, когда я пытаюсь открыть свой сайт администратора Django, я не могу войти, используя уже зарегистрированные учетные данные суперпользователя. В Postgres DB PGAdmin все данные, созданные ранее, хранятся и сохраняются правильно. Но после закрытия компьютера и запуска Docker compose up ранее сохраненные данные не распознаются при новом запуске, даже если данные все еще видны в моей Postgres DB. Как я могу сделать так, чтобы данные распознавались при запуске? Вот мои конфигурации docker-compose.yml:

version: "3.9"

services:
    api:
        build:
            context: .
            dockerfile: ./docker/local/django/Dockerfile
        # ports:
        #     - "8000:8000"
        command: /start
        
        volumes:
           - .:/app
           - ./staticfiles:/app/staticfiles
           - ./mediafiles:/app/mediafiles
        expose:
            - "8000"
        env_file:
            - .env
        depends_on:
            - postgres-db
            - redis
        networks:
            - estate-react

    client:
        build:
            context: ./client
            dockerfile: Dockerfile.dev
        restart: on-failure
        volumes:
            - ./client:/app
            - /app/node_modules
        networks:
            - estate-react
    postgres-db:
        image: postgres:12.0-alpine
        ports:
            - "5432:5432"
        volumes:
            - ./postgres_data:/var/lib/postgresql
        environment:
            - POSTGRES_USER=${POSTGRES_USER}
            - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
            - POSTGRES_DB=${POSTGRES_DB}
        networks:
            - estate-react
        
    redis:
        image: redis:5-alpine
        networks:
            - estate-react
    celery_worker:
        build:
            context: .
            dockerfile: ./docker/local/django/Dockerfile
        command: /start-celeryworker
        volumes:
            - .:/app
        env_file:
            - .env
        depends_on:
            - redis
            - postgres-db
        networks:
            - estate-react
    
    flower:
        build:
            context: .
            dockerfile: ./docker/local/django/Dockerfile
        command: /start-flower
        volumes:
            - .:/app
        env_file:
            - .env
        ports:
            - "5557:5555"
        depends_on:
            - redis
            - postgres-db
        networks:
            - estate-react

    nginx:
        restart: always
        depends_on:
            - api
        volumes:
            - static_volume:/app/staticfiles
            - media_volume:/app/mediafiles
        build: 
            context: ./docker/local/nginx
            dockerfile: Dockerfile
        ports:
            - "8080:80"
        networks:
            - estate-react


networks:
    estate-react:
        driver: bridge

volumes:
    postgres_data:
    static_volume:
    media_volume:

Вот настройка файла Docker nginx default.conf:

upstream api {
    server api:8000;
}

upstream client {
  server client:3000;
}

server {
    client_max_body_size 20M;
    listen 80;

    location /api/v1 {
        proxy_pass http://api;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
    }

    location /admin {
        proxy_pass http://api;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;

    }

    location /staticfiles/ {
        alias /app/staticfiles/;
    }

    location /mediafiles/ {
        alias /app/mediafiles/;
    }

    location /sockjs-node {
        proxy_pass http://client;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }

    location / {
       proxy_pass http://client;
       proxy_redirect off;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Host $server_name;

    }
    
}

Ваш ответ будет высоко оценен!!!

Вернуться на верх