【发布时间】:2019-06-13 12:05:10
【问题描述】:
我正在使用我安装到 docker php:7.3-cli 的 php composer 1.8.0
每次我用这个作曲家安装包时,它都会下载包,甚至包以前下载过。
composer 在哪里有它下载的包的缓存?
是否有任何命令行选项或其他设置特定目录作为作曲家缓存?
【问题讨论】:
标签: docker caching composer-php command-line-interface
我正在使用我安装到 docker php:7.3-cli 的 php composer 1.8.0
每次我用这个作曲家安装包时,它都会下载包,甚至包以前下载过。
composer 在哪里有它下载的包的缓存?
是否有任何命令行选项或其他设置特定目录作为作曲家缓存?
【问题讨论】:
标签: docker caching composer-php command-line-interface
见this:
COMPOSER_CACHE_DIR 变量允许您更改 Composer 缓存目录,该目录也可通过 cache-dir 选项进行配置。
默认情况下,它在 *nix 和 macOS 上指向 $COMPOSER_HOME/cache,在 Windows 上指向 C:\Users\\AppData\Local\Composer(或 %LOCALAPPDATA%/Composer)。
COMPOSER_HOME 变量允许您更改 Composer 主目录。这是一个隐藏的全局(计算机上的每个用户)目录,在所有项目之间共享。
默认情况下,它指向 Windows 上的 C:\Users\\AppData\Roaming\Composer 和 macOS 上的 /Users//.composer。在遵循 XDG 基本目录规范的 *nix 系统上,它指向 $XDG_CONFIG_HOME/composer。在其他 *nix 系统上,它指向 /home//.composer。
所以,我猜默认情况下,您需要使用-v 将主机路径作为卷挂载到容器中,以覆盖容器中的COMPOSER_CACHE_DIR。那么每次启动一个新容器,它就可以重用之前的包。
【讨论】: