Docker + Django + Nginx Случайный прерывистый 504 - PullRequest
0 голосов
/ 19 февраля 2020

Я работаю над контейнеризацией приложения Django с Docker, но у меня много проблем с тем, чтобы приложение работало последовательно. Моя конфигурация ниже:

Dockerfile

FROM ubuntu:18.04

RUN apt-get update -y
RUN apt-get upgrade -y

RUN apt-get install -y \
        nginx \
        git \
        python3 \
        python3-dev \
        python3-pip \
        build-essential \
        libpq-dev 


RUN apt-get install postgresql-client -y

RUN mkdir /config

COPY requirements.txt /config/

RUN pip3 install --no-cache-dir -r /config/requirements.txt

COPY wait-for-postgres.sh /config/

RUN chmod +x /config/wait-for-postgres.sh

RUN mkdir /src

COPY ./src /src

WORKDIR /src

docker -compose.yml

version: '3'

services:
  db:
    image: postgres:9.5
    container_name: pg01
    environment:
      POSTGRES_PASSWORD: dusk
  web:
    build: .
    command: ["/config/wait-for-postgres.sh", "db", "python3", "manage.py", "runserver", "0.0.0.0:8000"]
    expose:
      - "8000"
    depends_on:
      - db
      - nginx
    container_name: dj01
    environment:
      POSTGRES_PASSWORD: mypass
      PGPASSWORD: mypass
      PGHOST: postgres
      PGPORT: 5432
  nginx:
    image: nginx:latest
    container_name: ng01
    ports:
      - "8000:8000"
    volumes:
      - ./config/nginx:/etc/nginx/conf.d
      - ./src/static:/static

nginx .conf

upstream web {
  ip_hash;
  server web:8000;
}

server {

    location /static/ {
        autoindex on;
        alias /static/;
    }

    location / {
        proxy_pass http://web/;
    }
    listen 8000;
    server_name localhost;
}

Я запускаю приложение с docker-compose up --build и в 95% случаев получаю тайм-аут 504. Остальные 5% времени приложение загружается. Иногда полное удаление контейнеров с помощью docker rm $(docker ps -a -q) и сборка с нуля приводит к загрузке приложения, но не всегда.

Когда приложение работает, оно работает, как и ожидалось, но внесенные изменения не обновляются последовательно. Это часто вынуждает меня вручную перезапускать приложение (ctrl+c и docker-compose up --build снова), что часто возвращает меня к ошибке 504.

Что я здесь не так делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...