我使用Docker来容纳我的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;
}
}
问题:从另一个容器提供静态文件的最佳方法是什么?不涉及体积的解决方案是优选的。
答案 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容器的路径必须相同!