在 docker 上寻找在两个 Web 应用程序 运行 之间存储文件的最佳方式

Looking for the best way to store files between two web applications running on docker

我们有两个 symfony 4 应用程序(网络应用程序和其他 api)运行 在同一 "real" 服务器上的两个不同 docker 容器上(目前)。

这些文件(如图片或文档)暂时存储在网络应用程序 public 目录中,但我们也希望将此文件共享给其他人 api。

分享它们的最佳方式是什么?

将它们存储在 docker 父服务器上?为此文件构建一个新的 Web 服务器并通过 sftp 访问它们?

我们希望(通过两个应用程序)在新文件系统上拥有所有访问权限,例如创建目录、放置文件、删除文件和目录。

据我了解,您正在使用 1 个 docker 网络应用容器 + 1 个休息容器 api。将文件(图像、文档...)存储在 Web 应用程序 public 目录中不是一个好的解决方案。 如果您决定拥有更多网络应用副本(更多容器),您将遇到麻烦。

一个解决方案是拥有一项服务,用于存储您的所有应用程序文件并供所有应用程序容器使用。 你可以 Minio Server for Docker to create this service and in your symfony application use that minio server service for all your application instances. See here an example >> How to use AWS SDK for PHP with Minio Server

考虑使用 GlusterFS 等分布式文件系统,它应该能满足您的需求。 所有容器都可以让共享卷写入和读取。而且它在 swarm 上也很有效。