You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:38:09