Docker中的Web应用程序静态文件最佳实践是什么?

14

人们在使用Docker进行Web部署时,通常如何处理静态资源?

例如,在容器中部署的Django应用程序中,您是让应用服务器直接从容器中提供静态文件,还是将这些文件同步到另一台服务器由Web服务器提供服务,或者使用CDN?

如果不是从应用程序容器提供服务,那么什么时候将文件推送到CDN或Web服务器?是作为容器构建的一部分,还是在构建的第二个步骤中进行,并且如何确保两个步骤保持同步?


一个CMS与托管静态文件有什么关系? - Thomasleveil
打错了,我是指 CDN,很明显。 - jvc26
为什么要踩?这是一个合法的问题。 - M K
你的问题真的与Docker相关吗?为什么您认为使用Docker时最佳实践与静态文件托管有所不同?您能否澄清? - Thomasleveil
2
是的,实际上我想问的是人们在基于容器的架构中如何管理静态文件。这样做的目的是为了拥有自包含的部署。在我看来,你可以选择两种方式:要么在容器内外各构建一次(一次用于容器,一次用于将静态文件推送到静态服务器),要么从构建的容器内提供服务。这是在没有 Docker 的常见部署方案中不存在的情况。 - jvc26
由于这个问题仍未得到回答(尽管此页面显示有一个答案,但现在没有),我将添加原因,这是一个好问题,因为人们必须决定使用什么技术来打开端口以通过它发送文件:您必须在容器中打开一个端口。一些人使用ngnx,其他人使用Rust、go、python等创建自定义内容。这是一个很好的问题,我认为没有强烈的共识,这是不幸的。 - Rondo
1个回答

2
您需要使用云存储的形式来实现这一点,例如 S3。您也可以像 CDN 一样托管静态文件。由于您正在使用 Django,请考虑阅读此 文章。它解释了如何从 Django 应用程序内部托管静态文件。
作为 Laravel 用户,您可以使用 Laravel 内置的 flysystem 支持。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接