Статические файлы в Docker, когда в хост-системе работает только Nginx - PullRequest
0 голосов
/ 14 февраля 2019

На моем хост-компьютере (сервере Ubuntu) есть Nginx.Как настроить статические файлы при использовании Docker?

version: '2'

services:
  postgres:
    image: postgres:9.6
  redis:
    image: "redis:alpine"
  web: &django
    restart: always
    environment:
      - DJANGO_SECRET_KEY=local
    image: web
    build:
      context: .
      dockerfile: ./compose/production/web/Dockerfile
    command: /gunicorn.sh
    depends_on:
      - postgres
      - redis
    links:
      - redis
    ports:
      - "8083:5000"

В другом проекте (без Docker) у меня есть эта настройка в sites-enabled/mysite:

location /static/ {
    root /home/myproject;
}

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Здесь вы можете использовать том для предоставления доступа к статической папке из контейнера в хост-систему, например:

version: '2'

services:
  postgres:
    image: postgres:9.6
  redis:
    image: "redis:alpine"
  web: &django
    restart: always
    environment:
      - DJANGO_SECRET_KEY=local
    image: web
    build:
      context: .
      dockerfile: ./compose/production/web/Dockerfile
    volumes:
      - /path/to/static/folder:/static
    command: /gunicorn.sh
    depends_on:
      - postgres
      - redis
    links:
      - redis
    ports:
      - "8083:5000"

Теперь используйте nginx для обслуживания этого содержимого по этому пути:

location /static/ {    
    autoindex on;    
    alias /path/to/static/folder/; 
}

Здесь я предполагаю, что вы используете /static в качестве статического корня для вашего проекта django в докере.

0 голосов
/ 14 февраля 2019

Что я здесь сделал, когда это:

  • веб-приложение в докере (как у вас)
  • NGINX в контейнере
  • использование docker-compose
  • в docker-compose.yml из NGINX, в томах я установил папку для статических файлов:

    тома:

    - /folder/myproject/static:/home/myproject/static
    

ВозможноЕсть много других способов сделать это, но мне нужно доставить работу, так что это был единственный способ, которым я могу это сделать.

С уважением

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