【发布时间】:2016-10-09 23:04:48
【问题描述】:
我正在为 Symfony 应用程序构建一个 docker 环境。我每个应用程序都有一个容器,其中包含一个仅用于链接到应用程序服务器的 Web 根的附加数据容器。作为基础设施安全加固的一部分,这些数据容器被设置为只读,以防止任何远程代码漏洞。然后,每个应用程序还有一个允许写入日志的侧车容器。
Symfony 当前将缓存写入默认的cache_dir 位置
${web_root}/app/cache/${env}
在只读数据容器中
尝试启动应用程序时出现此错误
无法写入缓存目录
显然它在只写容器中会发生这种情况
我已经将我的log_path设置在read-write sidecar日志容器的只读容器外的参数中
/data/logs/symfony
效果很好。
我已经阅读了 Symfony 食谱关于如何覆盖目录结构,但它只建议如何在 AppKernal.php 中执行此操作,我不想这样做,因为路径可能会根据它是否在local/uat/prod 环境。
根据我们部署到的环境,我们从构建服务器向 Symfony 提供不同的参数,因此将这个配置放在这里是有意义的。
有谁知道是否可以覆盖配置中的缓存目录而不是编辑AppKernal.php
【问题讨论】:
-
AppKernal.php 有什么问题?这是来自他们的食谱
return dirname(__DIR__).'/var/'.$this->environment.'/cache';env 已经存在,您可以用您的自定义配置路径替换dirname(__DIR__).'/var/' -
我们试图保持代码与 env 无关,因为路径变化超过 $this->environment,它需要 ifs 或 switch 依赖于我们不想要的 env
标签: php symfony security docker docker-compose