Azure Pipeline执行Docker Compose时无法访问pass凭据存储(GPG密钥需TTY)的问题求助
Azure Pipeline执行Docker Compose时无法访问pass凭据存储(GPG密钥需TTY)的问题求助
各位好,我遇到了一个棘手的问题想请教大家:
我在目标Ubuntu机器上安装了Docker、Docker Compose,还有pass作为Docker的凭据存储工具,目前我的~/.docker/config.json配置是这样的:
{ "auths": { "whatever.azurecr.io": {} }, "credsStore": "pass" }
我的GPG密钥是设置了密码保护的,现在遇到的问题是:当我SSH登录到这台主机后,直接执行拉取镜像并重建容器的命令:
docker compose up --force-recreate -d
会弹出以下错误:
exit status 1, out: `exit status 2: gpg: public key decryption failed: No such file or directory
但如果在同一个SSH会话里先执行这条命令:
export GPG_TTY=$(tty)
再运行Docker Compose的命令就完全正常了。
现在我需要通过Azure Pipeline自动执行这个Docker Compose命令,下面是我目前在Pipeline里尝试的步骤,但还是没解决问题,想请大家帮忙看看哪里出了问题:
- bash: | export GPG_TTY=$(tty) echo "GPG_TTY: $GPG_TTY" echo "Starting all Docker Containers..." docker compose up --force-recreate -d
希望有经验的朋友能指点一下,怎么让Azure Pipeline里的脚本正确设置GPG_TTY,或者有没有其他办法让Docker在非交互式的Pipeline环境下正常访问pass凭据存储?
备注:内容来源于stack exchange,提问作者fr3sh
相关产品推荐
相关产品推荐

