Composer缓存问题:Docker环境下查看缓存目录及自定义配置方法
Composer缓存位置与自定义设置
一、默认缓存存储位置
在你使用的Docker php:7.3-cli环境里,Composer 1.8.0的默认缓存目录是容器内的/root/.composer/cache——因为这个镜像默认以root用户运行,~对应的就是root的家目录/root。这个目录下会拆分出files(存储下载的包文件)、repo(存储仓库元数据缓存)等子目录,分别对应不同类型的缓存内容。
二、自定义缓存目录的方法
如果想指定自己的缓存目录,有几种灵活的实现方式:
命令行临时指定:每次执行Composer命令时,通过
--cache-dir选项直接指定缓存路径,适合单次临时调整,示例:composer install --cache-dir=/var/www/composer-cache环境变量全局配置:在容器内设置
COMPOSER_CACHE_DIR环境变量,让所有Composer命令自动复用这个缓存目录。你可以在启动容器时传入变量:docker run -e COMPOSER_CACHE_DIR=/var/www/composer-cache php:7.3-cli composer install也可以先在容器内导出变量再执行命令:
export COMPOSER_CACHE_DIR=/var/www/composer-cache composer install全局配置文件永久设置:在容器内的
/root/.composer/config.json(没有的话直接新建)中添加cache-dir配置项,示例:{ "config": { "cache-dir": "/var/www/composer-cache" } }这样后续所有Composer命令都会默认使用这个自定义缓存目录,无需每次额外加参数。
另外补充一点:如果发现重启容器后缓存就失效,大概率是因为缓存目录没有挂载到宿主机或Docker持久化卷上——Docker容器默认文件系统是临时的,容器销毁后数据会丢失。如果要长期保留缓存,建议把自定义缓存目录挂载到宿主机的固定目录或者Docker卷中。
内容的提问来源于stack exchange,提问作者Jimmix
相关产品推荐
相关产品推荐

