Ошибка создания образа докера django, gunicorn и nginx - PullRequest
1 голос
/ 19 марта 2019

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

Структура папок приложения, как показано ниже

.
├── config
│   └── nginx
│       └── conf.d
│           └── local.conf
├── docker-compose.yml
├── Dockerfile
├── aggre
│   ├── aggre
│   └── manage.py
|   └── static
├── requirements.txt

Settings.py выглядит как

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR),'static']
STATIC_ROOT = os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)), 'static')

Dockerfile

FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN mkdir -p /opt/services/django/src
WORKDIR /opt/services/django/src
COPY requirements.txt /tmp/
RUN pip install --requirement /tmp/requirements.txt
COPY . /tmp/
COPY . /opt/services/django/src
RUN python aggre/manage.py collectstatic --no-input  # <-- here
CMD exec /bin/bash -c "trap : TERM INT; sleep infinity & wait"
EXPOSE 8000
ADD . /opt/services/django/src
CMD ["gunicorn", "--chdir", "aggre", "--bind", ":8000", "aggre.wsgi:application"]

docker-compose.yml

version: '2'
services:
  djangoapp:
    build: .
    volumes:
      - .:/opt/services/django/src
      - static_volume:/opt/services/django/static/
    networks:
      - nginx_network

  nginx:
    image: nginx:1.13
    ports:
      - "80:80"
    volumes:
      - ./config/nginx/conf.d:/etc/nginx/conf.d
      - static_volume:/opt/services/django/static/ 
    depends_on:
      - djangoapp
    networks:
      - nginx_network

networks:
  nginx_network:
    driver: bridge

volumes:
  static_volume: 

local.conf

server {
    listen 80;
    server_name ***.***.io;

    location / {
        proxy_pass http://djangoapp:8000;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
    }
    location /static {
        alias /opt/services/django/static;
    }
}

Я собираю и использую **

docker-compose up --built

Приложение успешно запущено, но статические файлы не загружены.Я получаю

"/ opt / services / django / src / static / js / bootstrap.js" не удалось (2: нет такого файла или каталога) **

Базовый каталог

BASE_DIR = os.path.dirname (os.path.dirname (os.path.abspath ( file )))

Я не получаю, где это не в состоянии загрузить статические файлы.

...