我使用Docker来容器化我的Django环境,它看起来像这样(简化了一点):
- Nginx(官方图片)docker容器 一个Ubuntu docker容器,包含uwsgi和Django
Nginx容器正在服务uwsgi很好,但我没有找到一种方法来服务静态文件。
upstream proceed {
server proceed:8000;
}
server {
listen 80;
server_name mydomain.com;
location /static {
alias /srv/www/proceed/static/; # What to do here?
}
location / {
uwsgi_pass proceed;
include uwsgi_params;
}
}
问题:从另一个容器提供静态文件的最好方法是什么?最好是不涉及体积的解决方案。
如前所述,您需要在容器之间共享卷。
你的django Dockerfile
需要包含卷定义
FROM ubuntu
....
VOLUME /srv/www/proceed/static # there is path to your static
当你运行nginx容器时,你需要添加volumes-from
参数
docker run nginx --volumes-from django
然后你的nginx配置将工作良好。
注意!指向django容器和nginx容器的静态内容的路径必须相同!