我用--ssh
docker buildkit 功能,它在本地运行良好。
我想在远程服务器上构建 Docker,为此我使用-A
标记转发我的本地 github 密钥,例如:
ssh -i "server.pem" -A <user>@<server-ip>
然后在服务器终端中运行:
ssh -T [email protected] /cdn-cgi/l/email-protection
我收到“Hello user”消息,这意味着密钥转发工作正常。
(在服务器中,$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
is set
泊坞窗版本: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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)