在php-fpm和nginx容器设置中,通常需要两个容器都可以使用源代码。就我而言,我想将Magento码头化。在Magento中,nginx的配置方式是在将请求提交给php引擎之前先查找文件是否存在。
根据Docker在生产环境中的最佳实践,我在构建过程中将源代码复制到了php容器中。与Nginx容器共享源代码的第一个想法是使用安装在两个容器根目录上的命名卷。但是,即使在编辑源代码并重建php容器之后,命名卷中的数据仍然存在。这对于动态内容(如文件上传等)非常方便,但是如何升级源代码?每次更改源代码时都应该删除该卷吗?在这种情况下,如何保存动态内容?
简而言之:
对于Magento来说,应该是:
./index.php
,./vendor/
,./app/
等文件和文件夹的非持久卷(./app/etc/env.php
和./app/etc/config.php
除外,因为它们是配置文件)等。./pub/media/
,./app/etc/env.php
,./app/etc/config.php
等文件和文件夹的永久卷。