我正在为 Symfony 应用程序构建 docker 环境。我每个应用程序都有一个容器,其中附加了一个仅用于链接到应用程序服务器的 Web 根数据的容器。作为基础设施安全强化的一部分,这些数据容器被设置为只读,以防止任何远程代码攻击。每个应用程序还有一个 side car 容器,允许写入日志。
Symfony 当前将缓存写入默认值cache_dir
的位置
${web_root}/app/cache/${env}
位于只读数据容器中
当尝试启动应用程序时,我收到此错误
无法写入缓存目录
显然,因为它位于只写容器中,所以会发生这种情况
我已将 log_path 设置在读写 sidecar 日志记录容器中的只读容器外部的参数中
/data/logs/symfony
效果很好。
我已经阅读了有关如何覆盖目录结构的 Symfony 食谱,但它仅建议如何在AppKernal.php
我不想这样做,因为路径可能会根据它是否在local/uat/prod
环境。
根据我们要部署的环境,我们从构建服务器向 Symfony 提供不同的参数,因此将此配置放在这里是有意义的。
有谁知道是否可以覆盖配置中的缓存目录而不是编辑AppKernal.php
我正在容器外部创建缓存文件并使用-v
将目录挂载到容器中
$DIR 是当前位置
htdocs 是网络文件所在的位置
docker run -d \
-v $DIR/htdocs:/var/www/html \
-v $DIR/cache_folder:/var/www/html/app/cache
然后确保容器允许写入cache_folder
。优点是,如果重新创建容器,您不会丢失任何数据。这也将覆盖该文件夹/var/www/html/app/cache
另一种方法是在每个容器内执行此操作,但每次重新启动时都会松开设置
chmod -R 777 ${web_root}/app/cache/${env}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)