Django和nginx与docker组成 – 静态文件不加载
我知道有几个类似的问题已经被问到,但是我还没有设法在任何地方find正确的答案。
我想dockerize我的Django应用程序。 该应用程序在泊坞窗容器中工作正常,但静态文件(图像,CSS等)不加载。
我docker-compose.yml
:
version: '2' services: web: build: . command: ./start.sh volumes: - .:/app - /app/www/static ports: - "8000:8000" env_file: .env nginx: build: ./nginx links: - web ports: - "0.0.0.0:80:80" volumes_from: - web
start.sh
脚本
python manage.py makemigrations --noinput python manage.py migrate --noinput python manage.py collectstatic --noinput exec gunicorn audiobridge.wsgi:application --bind 0.0.0.0:8000 --workers 3
web
容器的Dockerfile
:
FROM python:2.7 ENV PYTHONUNBUFFERED 1 RUN mkdir /app WORKDIR /app ADD requirements.txt /app/ RUN pip install -r requirements.txt ADD . /app/
然后我有一个nginx /目录在我的项目中有以下Dockerfile
:
FROM nginx COPY sites-enabled/audiobridge /etc/nginx/sites-enabled/
在nginx / sites-enabled里面有nginxconfiguration文件:
server { listen 80; server_name 127.0.0.1; charset utf-8; location /static { alias /app/www/static/; } location / { proxy_pass http://web:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }