Docker化的Nginx和Django,如何提供静态文件

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

  1. 一个Nginx(官方图像)docker集装箱
  2. 一个uwsgi和Django的Ubuntu docker容器

Nginx的容器服务的uwsgi就好了,但我还没有find一种方法来提供静态文件。

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; } } 

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

正如所说的@larsks你需要在容器之间共享卷 。

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