php-在参数中设置symfony缓存目录
作者:互联网
我正在为Symfony应用程序构建一个docker环境.我为每个应用程序都有一个容器,该容器具有用于链接到应用程序服务器的Web根的仅数据容器.作为基础结构安全性增强的一部分,这些数据容器被设置为只读,以防止任何远程代码利用.每个应用程序还具有一个侧面的汽车容器,该容器允许写入日志.
Symfony当前将缓存写入到以下文件的默认cache_dir位置:
${web_root}/app/cache/${env}
哪个位于只读数据容器中
尝试启动应用程序时出现此错误
Unable to write in the cache directory
显然,这将发生在只写容器中
我已经将log_path设置为在的可读写sidecar日志记录容器中的只读容器外部的参数中
/data/logs/symfony
效果很好.
我已经阅读了Symfony食谱,了解如何越过目录结构,但它仅建议如何在AppKernal.php中执行此操作,我不希望这样做,因为路径可能会更改,具体取决于它是否在本地/本地/ 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}
标签:docker,docker-compose,symfony,security,php 来源: https://codeday.me/bug/20191027/1940695.html