如何从Dockerized Python Web应用程序提供静态文件?

前端之家收集整理的这篇文章主要介绍了如何从Dockerized Python Web应用程序提供静态文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个位于Nginx后面的Python Web应用程序,通过Gunicorn提供服务.

我已对其进行了配置,以便Nginx直接从磁盘上提供静态文件,并且只与Gunicorn通信以获取静态资产(如图像).

我的问题:

>将Web应用与静态资产结合在一起是一个好主意还是一个很大的“不”?
>如果我想在两个需要访问相同资产的服务器中部署我的容器,我怎样才能使静态资产像容器化应用程序一样可移植?

如果可能的话,我想拥有什么:

我想将我的应用程序放在一个容器中,我希望尽可能地将其变为便携式,而无需在额外的资源上花费更多资金,例如单独的服务器来保存图像(如数据库)

最佳答案
如果你知道你的应用程序永远都会拥有相同的静态资产,那么只需将它们与应用程序集成在一起并完成它.

但是事情发生了变化,所以当你需要它时我会建议采用Docker Volume Container方法:将你的静态资产放在DVC中并将DVC安装在主容器中,这样它就几乎只是“一个app容器”.你可以使用Docker Compose这样的东西:

appdata:
    image: busyBox
    volumes:
        - /path/to/app/static
    command: echo "I'm just a volume container"
app:
    build: .
    volumes_from:
        - appdata
    command: …

您可以通过使用引导脚本启动容器来进一步扩展,该脚本在启动时将初始静态文件复制到目标路径.这样,您的应用程序可以保证始终具有默认设置,但随着应用程序的增长,您可以添加更多静态文件.有关此示例,请提取官方Jenkins容器并阅读/usr/local/bin/jenkins.sh.

猜你在找的Docker相关文章