我知道有人问过几个类似的问题,但我还没有在任何地方找到合适的答案。
我想dockerize我的Django应用程序。应用程序在docker容器中工作正常,但静态文件(图像,css等)没有加载。
My 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中有nginx配置文件:
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;
}
}
输入图片描述
volumes:
- "../nginx/conf.d:/etc/nginx/conf.d/templates"
- "/static:/static"
你试过将这段代码添加到nginx和django应用程序吗?