命令docker login -u _json_key --password-stdin https://gcr.io < ~/service-account.json
在本地工作,但当我尝试在像Github Actions这样的CI环境中运行它时,我会收到以下错误。
错误:无法从非TTY设备执行交互式登录
##[error]进程已完成,退出代码为1。
oauth2accesstoken
身份验证策略对我有效。
- 使用服务帐户登录
gcloud
cli
gcloud auth activate-service-account --key-file=${HOME}/service-account.json
- 打印访问令牌并使用它登录docker
gcloud auth print-access-token | docker login -u oauth2accesstoken --password-stdin https://gcr.io
您似乎在用身份验证令牌模拟一个服务帐户来登录docker。您可以获得服务帐户的访问令牌。由于令牌是短暂的,请在使用它连接容器注册表之前不到一小时请求它。
此处记录了这些步骤。