Docker环境下Symfony Recipe更新失败:非Git仓库问题
解决Symfony Recipe更新时Git仓库找不到的问题
问题原因
Composer更新Symfony Recipe时需要执行Git命令检测仓库状态,但你的Docker容器仅将本地app目录作为工作目录挂载,本地根目录的.git仓库在容器内无法被访问到,导致Git命令执行失败。
解决方案
方案1:临时允许Git跨文件系统查找仓库
执行命令时添加环境变量,让Git可以跨文件系统向上查找仓库:
docker exec -e GIT_DISCOVERY_ACROSS_FILESYSTEM=1 app composer recipes:update
方案2:调整Docker挂载目录(长期解决)
修改docker-compose.yml,将本地根目录挂载到容器内,同时设置工作目录为app目录,确保容器能访问到上级的.git仓库:
services: app: volumes: - ./:/var/www/project # 挂载本地根目录到容器内的/var/www/project working_dir: /var/www/project/app # 设置工作目录为app目录
修改后重启容器,再执行原更新命令即可。
方案3:直接重新安装Recipe(最快解决)
使用错误提示中的命令,跳过补丁更新流程,直接重新安装最新版本的Recipe:
docker exec app composer recipes:install doctrine/annotations --force -v
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

