云效流水线需配置项目级 Composer 镜像,因 runner 用户不读取全局配置;应在 composer.json 中执行 composer config repo.packagist composer https://mirrors.aliyun.com/composer/,并清理 vendor 和 lock 文件后运行 composer install --no-interaction --prefer-dist。

云效流水线里 Composer 还在直连 packagist.org?
不是网络慢,是镜像没配进 CI 环境——云效默认用 runner 用户执行命令,它根本读不到你本地 composer config -g 写的全局配置。所有“本地配好了但流水线还卡 Downloading”的问题,基本都出在这儿。
必须用项目级配置,且要写进 composer.json
云效拉代码后直接跑 composer install,只认当前目录下的 composer.json 里的 repositories。全局配置对它无效,临时 --repository 又难维护、易漏。
- 进项目根目录(确保有
composer.json),运行:composer config repo.packagist composer https://mirrors.aliyun.com/composer/ - 这条命令会自动往
composer.json顶层加"repositories"字段,key 固定为"packagist",不会覆盖已有私有源 - 如果项目已有
"repositories": []数组,别手动改 JSON —— 用命令追加,否则可能删掉团队私有包源 - 改完立刻
git add composer.json && git commit -m "set aliyun mirror for ci",让云效下次构建时自动生效
流水线脚本里别漏清缓存和重装
云效节点常复用,vendor/ 和 composer.lock 可能残留旧源信息,导致仍尝试访问 packagist.org。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 在云效流水线「构建」阶段的自定义脚本中,加这两行:
rm -rf vendor composer.lockcomposer install --no-interaction --prefer-dist- 不要用
composer update—— 它会重新解析依赖,和镜像无关,反而卡在Resolving dependencies - 如果用了自定义 PHP 环境(比如宝塔或容器),确认
composer命令在 PATH 里,否则报Could not open input file: composer
验证是否真走镜像:看日志里有没有 mirrors.aliyun.com
别信“脚本跑完了”,得亲眼看到请求域名才作数。云效构建日志里搜 Downloading 或 mirrors:
- 正常应看到类似:
Downloading https://mirrors.aliyun.com/composer/p2/topthink/think/a0b1c2d3.json - 如果看到
packagist.org或Could not fetch https://mirrors.xxx//p2/,说明 DNS 不通或镜像 URL 少了末尾斜杠 - 阿里云地址必须是
https://mirrors.aliyun.com/composer/(结尾带/),少一个就 404
镜像只管下载快慢,不解决依赖解析卡顿。如果日志停在 Resolving dependencies 超过 30 秒,该查 composer.json 里是不是写了太宽的 PHP 版本约束或一堆 dev- 分支。

















