【问题标题】:Dockerized Nginx and Django, how to serve static filesDockerized Nginx 和 Django,如何提供静态文件
【发布时间】:2017-01-06 18:36:19
【问题描述】:

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

  1. 一个 Nginx(官方镜像)docker 容器
  2. 一个带有 uwsgi 和 Django 的 Ubuntu docker 容器

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

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

【问题讨论】:

  • 您需要使您的文件在容器内可用。这意味着要么(a)将它们安装为一个卷,要么(b)将它们烘焙成一个新图像。任君挑选。
  • @larsks -- 将它们烘焙到新图像中的最佳方法是什么?理想情况下,这就是我想做的。

标签: django nginx docker


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-12-02
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 2019-02-22
    • 1970-01-01
    • 2011-01-27
    • 2015-11-30
    相关资源
    最近更新 更多