Dockerized Nginx和Django,如何提供静态文件

时间:2016-08-30 12:55:25

标签: django nginx docker

我使用Docker来容纳我的Django环境,看起来像这样(简化了一点):

  1. Nginx(官方图片)泊坞容器
  2. 带有uwsgi和Django的Ubuntu docker容器
  3. 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;
        }
    }
    

    问题:从另一个容器提供静态文件的最佳方法是什么?不涉及体积的解决方案是优选的。

1 个答案:

答案 0 :(得分:2)

正如@larsks所述,您需要share volumes between containers

您的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容器的路径必须相同!