Я пытаюсь развернуть Django на Docker в AWS Lightsail, и страницы застревают при загрузке без подключения к серверу - PullRequest
0 голосов
/ 09 мая 2020

Я пытался развернуть приложение Django на Lightsail с помощью Gunicorn, NginX и Docker. Я просмотрел несколько руководств, но все безуспешно. Я не знаком с большинством концепций и в значительной степени следую слепо. Пока что на самом сервере все работает, но я не вижу результатов на веб-странице. Я настроил его для «производства» (не уверен, что я вообще все делаю правильно) и добавил в свой домен запись, которая перенаправляет на этот сервер. Веб-страница просто постоянно буферизуется, даже когда я пытаюсь установить для нее порт 8000 (для разработки). Думаю, у меня было несколько случаев, когда я видел постоянно перемещенный журнал «301 5» на docker-compose logs, но это все.

Вот файлы Dockerfile, docker -compose.yml и nginx conf.d (которые, вероятно, являются наиболее важными.

docker -compose.yml

version: '3.7'

services:
    web:
        build:
        environment: 
            - ENVIRONMENT=production
            - SECRET_KEY=NOT IMPORTANT
            - DEBUG=0
            - EMAIL_HOST_USER=EMAIL
            - EMAIL_HOST_PASSWORD=PASSWORD
        volumes:
            - .:/code
            - static_volume:/code/staticfiles
        depends_on: 
            - db
        networks:
            - nginx_network
            - db_network
    db:
        image: postgres:11
        env_file:
            - config/db/db_env
        networks:
            - db_network
        volumes:
            - db_volume:/var/lib/postgresql/data
    nginx:
        image: nginx:1.17.0
        ports:
            - 80:80
        volumes:
            - ./config/nginx/conf.d:/etc/nginx/conf.d
            - static_volume:/code/staticfiles
        depends_on:
            - web
        networks:
            - nginx_network
networks:
        nginx_network:
            driver: bridge
        db_network:
            driver: bridge
volumes:
        db_volume:
        static_volume:

Dockerfile:

   # Pull base image
FROM python:3.7

# Environment variables

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# Work directory

WORKDIR /code

# Dependencies
COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv && pipenv install --system

# Copy project
COPY . /code/

# expose port
EXPOSE 80

# gunicorn
CMD ["gunicorn", "--chdir", "my_project", "--bind", ":80", "mbdebate_project.wsgi:application"]

conf.d:

upstream hello_server {
    server web:80;
}

server {
    listen 80;
    server_name mydomain.com;

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

    location /static/ {
        alias /code/staticfiles/;
    }
}

Настройки довольно стандартные, и я не думаю, что проблема в этом. Любая помощь был бы очень признателен :).

Руководство, которому я следовал: tpawamoy.github.io/2018/02/01/docker-compose-django-postgres-nginx.html

...