首页 > 解决方案 > Magento 2 Open Source with Docker in production:如何共享静态内容和媒体文件

问题描述

我们在 Docker 环境中使用 Magento2 开源,其中我们有一个运行 nginx 的应用程序容器和多个 phpfpm 容器。目前,所有容器在网络存储上都有一个挂载到 /pub 的共享,因此 /pub/media 中的图像等只需上传一次并在所有容器之间共享。/pub/static 中的静态内容也是共享的。

这通常有效,但对自动化部署过程有缺点:

所以想法是在每个 php 容器中都有 /pub/static,而不是将其共享为挂载文件夹,并在每个 php 容器中单独运行构建setup:di:compile过程setup:static-content:deploy。一旦容器准备就绪,它就会被包含在网络中并开始为请求提供服务。
不幸的是,这不起作用,因为静态内容由应用程序容器/nginx(在 nginx.conf 中配置)提供,而不是由 php 容器提供。但是应用程序容器无权访问 /pub/static,因为该文件夹现在是多个 php 容器的本地部分。

所以我的问题是:在具有多个 php 容器的 Docker 环境中自动构建过程的最佳方法是什么?
任何文件夹应该在多个容器之间共享还是保留在容器中?(我们仍然只想拥有一个 /pub/media 文件夹,因为内容编辑器会上传图片,例如通过管理面板中的媒体库。)

标签: dockermagento2

解决方案


推荐阅读