使用gcloud auth application-default login命令报错及Skaffold凭证问题求助
问题诊断与解决办法
核心问题定位
你遇到的Errno 9: Bad file descriptor错误,本质是gcloud CLI没有权限写入指定的凭证文件路径,或该路径的文件/目录存在占用、损坏等异常。
具体解决步骤
1. 检查目标目录权限
- 打开文件管理器,导航到
C:\Users\Admin\AppData\Roaming\gcloud - 右键文件夹选择「属性」→「安全」标签,确认当前登录用户拥有「写入」或「完全控制」权限
- 若权限不足,点击「编辑」添加当前用户的写入权限,保存后重试命令
2. 手动创建目标文件再尝试
- 在
C:\Users\Admin\AppData\Roaming\gcloud目录下新建空白文本文档,重命名为application_default_credentials.json - 确保文件未被其他程序占用(如记事本、杀毒软件),重新执行
gcloud auth application-default login
3. 清理gcloud缓存目录
- 关闭所有终端及gcloud相关进程
- 备份
C:\Users\Admin\AppData\Roaming\gcloud目录后,删除其中所有缓存文件 - 重新打开终端,执行
gcloud auth application-default login
4. 临时指定凭证文件路径(绕过默认路径问题)
如果以上方法无效,可手动指定凭证输出路径:
gcloud auth application-default login --credential-file-output="C:\temp\adc.json"
随后在终端设置环境变量,让Skaffold读取该凭证:
set GOOGLE_APPLICATION_CREDENTIALS=C:\temp\adc.json
再执行skaffold dev
额外配置修正
你的Skaffold配置中,镜像路径使用了{project-id}占位符,需替换为实际GCP项目ID(ticketing-dev-368011),避免后续镜像推送失败:
artifacts: - image: gcr.io/ticketing-dev-368011/auth
内容的提问来源于stack exchange,提问作者ismail
相关产品推荐
相关产品推荐

