gpt4 book ai didi

docker buildkit 在使用远程代理转发时挂载 ssh

转载 作者:行者123 更新时间:2023-12-02 19:52:21 28 4
gpt4 key购买 nike

我使用 --ssh docker buildkit 功能,它在本地运行良好。
我想在远程服务器上构建 Docker,为此我使用了 -A标记转发我的本地 github key ,例如:

ssh -i "server.pem" -A <user>@<server-ip>

然后在服务器终端我运行:
ssh -T git@github.com

我收到“Hello user”消息,这意味着 key 转发工作正常。
(服务器中确实设置了 $SSH_AUTH_SOCK ,我可以 git clone )

现在,在本地构建时,我使用:
DOCKER_BUILDKIT=1 docker build --ssh default=~/.ssh/id_rsa -t myimage:latest .

哪个工作正常。
但是在服务器中,私钥在 ~/.ssh/id_rsa 中不存在。那么如何将其转发到 docker build 呢?
在服务器上试过这个:
DOCKER_BUILDKIT=1 docker build --ssh default=$SSH_AUTH_SOCK -t myimage:latest .

但它不起作用。错误是:
could not parse ssh: [default]: invalid empty ssh agent socket, make sure SSH_AUTH_SOCK is set

即使 SSH_AUTH_SOCK已设置

Docker 版本:19.03

最佳答案

我有一个类似的问题,它很简单地解决了,我包裹了 ${SSH_AUTH_SOCK}花括号内

eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa
DOCKER_BUILDKIT=1 docker build -t myimage:latest --ssh default=${SSH_AUTH_SOCK} .
在 Docker 文件中,我有适当的 RUN 指令来运行需要敏感数据的命令
RUN --mount=type=ssh \
mkdir vendor && composer install

关于docker buildkit 在使用远程代理转发时挂载 ssh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59838300/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com