加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 03:28:05 所属栏目:安全 来源:网络整理
导读:我有一个位于Nginx后面的Python Web应用程序,通过Gunicorn提供服务. 我已对其进行了配置,以便Nginx直接从磁盘上提供静态文件,并且只与Gunicorn通信以获取静态资产(如图像). 我的问题: 将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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读