Развертывание приложения Django с помощью Nginx, Gunicorn, uvicorn, PostgreSQL

Мое приложение работает в режиме разработки (я запускаю из контейнера с указанной переменной RTE=dev docker-compose up). Мне нужно развернуть приложение в моем домене и у меня есть все настройки для этого (Nginx, Gunicorn, uvicorn, PostgreSQL). Когда я запускаю docker-compose в режиме Production, я не получаю никаких ошибок и не могу понять, в чем проблема.

settings.py

class RuntimeEnvironment(Enum):
    """docstring: environment variables"""
    dev = 1
    test = 2
    prod = 3

RTE = RuntimeEnvironment[os.environ['RTE']]

(...)

if RTE is RuntimeEnvironment.dev:
    SECRET_KEY = 'django-insecure-l)lj4%c6(3v5r!0b9eac&0%%_500%ct4x1nbf5j5qsarmtn0#d'
else:
    SECRET_KEY = os.environ['DJANGO_SECRET_KEY']

(...)

if RTE is RuntimeEnvironment.dev:
    DEBUG = True
    ALLOWED_HOSTS = []
else:
    DEBUG = False
    ALLOWED_HOSTS = ['pbstyle.dk', 'https://pbstyle.dk/']


nginx.conf

upstream app_upstream {
    server app:8080;
}

server {
    listen 80;
    listen 443;

    server_name pbstyle.dk;

    location /static/ {
        alias /static/;
    }

    location /media/ {
        alias /media/;
    }

    location / {
        proxy_set_header Host $host;
        proxy_pass http://app_upstream;
    }
}

docker-compose

version: "3.8"

services:

  db:
    image: postgres:13-alpine
    volumes:
      - db_data:/var/lib/postgresql/data
      - ./dbscripts/:/dbscripts/
    env_file:
      - db_${RTE}.env

  app:
    build: .
    ports:
      - 8000:8000
      - 8080:8080
    env_file:
      - db_${RTE}.env
    volumes:
      - .:/app/
      - static:/static/
      - media:/media/
    depends_on:
      - db

  nginx:
    build: nginx/
    ports:
      - 443:443
      - 80:80
    volumes:
      - ./ngin/${RTE}/conf.d/:/etc/nginx/conf.d/
      - ./certs/:/etc/letsencrypt/
      - static:/static/
      - media:/media/
    depends_on:
      - app

entrypoint.sh

echo "${RTE} Runtime Environment!"

if [ "$RTE" = "dev" ]; then

   (...)

elif [ "$RTE" = "prod" ]; then

    echo "This is production"
    python manage.py check --deploy
    python manage.py collectstatic --noinput
    gunicorn kea_bank.asgi:application -b 0.0.0.0:8080 -k uvicorn.workers.UvicornWorker

fi

Есть идеи, почему я все еще не могу увидеть приложение на моем домене? Спасибо!

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