标签:docker docker-compose symfony security php
我正在为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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。