Lando从Pantheon Multidev拉取失败,请求技术排查
问题描述
已安装Lando与docker-ce,克隆Pantheon项目后执行命令:
lando pull --database=dev --files=dev --code=dev
选择带有有效机器密钥的Pantheon账户后,出现报错日志:
Attempting to login via terminus... [notice] Logging in via machine token. [error] HTTP request has failed with error "Maximum retry attempts reached". [error] Could not find a saved token identified by . [error] Please visit the dashboard to generate a machine token: https://dashboard.pantheon.io/machine-token/create/USER_ID
但直接执行Terminus登录命令:
terminus auth:login --email=EMAIL
能成功返回:
[notice] Logged in via machine token.
环境信息:
- WSL2 (Focal)
- Docker version 20.10.9, build c2ea9bc
- Lando v3.6.4
- Terminus 3.1.0
- PHP 8.1.13
解决方法
1. 统一Lando容器与本地的Terminus路径
本地Terminus和Lando容器内的Terminus版本/路径不一致可能导致token识别问题:
- 查看本地Terminus路径:
which terminus - 查看Lando容器内的Terminus路径:
lando ssh -c "which terminus" - 如果路径不同,在项目根目录的
.lando.yml中添加配置,指定本地Terminus路径:services: appserver: overrides: environment: TERMINUS_PATH: /usr/local/bin/terminus # 替换为你的本地Terminus路径 - 保存后执行
lando rebuild重启容器,再尝试lando pull。
2. 手动将本地Terminus Token复制到Lando容器
Lando容器可能无法读取本地的Terminus token缓存,手动复制:
- 执行以下命令将本地token文件复制到容器内对应目录:
lando ssh -c "mkdir -p ~/.terminus/cache" cp ~/.terminus/cache/tokens.json $(lando ssh -c "echo ~")/.terminus/cache/ - 复制完成后重新执行
lando pull。
3. 修复WSL2网络超时问题
WSL2的网络配置异常可能导致请求Pantheon API超时:
- 执行命令重启WSL2:
wsl --shutdown - 重新打开WSL终端,进入项目目录后重试
lando pull。
4. 升级Lando到最新版本
旧版Lando与Terminus 3.x可能存在兼容性问题,升级到最新稳定版后重新测试拉取命令。
内容的提问来源于stack exchange,提问作者Sizuji
相关产品推荐
相关产品推荐

