Проблема 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;
}
}
Ваш ответ будет высоко оценен!!!