【发布时间】:2016-12-20 19:35:44
【问题描述】:
我有一个包含 django 应用程序的 docker 容器。生成静态文件并将其复制到静态文件夹。
容器文件夹层次结构:
- var
- django
- app
- static
在构建 docker 映像之前,我运行 ./manage.py collectstatic,因此静态文件位于 /var/django/static 文件夹中。为了公开应用程序并提供静态文件,我在主机上有一个 nginx。问题是,如果我在主机上的静态文件夹和指定文件夹之间创建一个卷,当我运行 docker 容器时,容器中的 /var/django/static 文件夹会被删除(嗯,不是删除而是挂载)。有什么办法可以克服这个吗?如设置音量但告诉 docker 也获取当前文件?
【问题讨论】:
-
为什么不构建一个
nginxdocker 镜像呢?因此,您在这里要做的就是对您的 django Web 应用程序执行build所需的任何操作,然后添加(使用 dockerfile 的ADD关键字)将静态文件推送到 nginx 映像中? -
因为这就是我们的 QA/集成/生产环境的工作方式。 nginx 在主机上,不在 docker 上运行。
-
我明白了。因此,您正在考虑将容器的文件挂载到主机上,这非常不合常规,因为人们通常以相反的方式进行操作。那么拥有一个只对文件感兴趣的容器的目的是什么?为什么不将静态文件目录符号链接到
ngix将为其文件提供服务的目录。
标签: docker docker-volume