gpt4 book ai didi

docker - docker build 期间的 SSH 代理转发

转载 作者:IT老高 更新时间:2023-10-28 12:43:02 25 4
gpt4 key购买 nike

在通过 dockerfile 构建 docker 镜像时,我必须克隆一个 github 存储库。我将我的公共(public) ssh key 添加到了我的 git hub 帐户中,并且我能够从我的 docker 主机克隆 repo。虽然我看到我可以通过在 docker run like 时映射 $SSH_AUTH_SOCK env 变量来使用 docker 主机的 ssh key

docker run --rm -it --name container_name \
-v $(dirname $SSH_AUTH_SOCK):$(dirname $SSH_AUTH_SOCK) \
-e SSH_AUTH_SOCK=$SSH_AUTH_SOCK my_image

如何在 docker build 期间做同样的事情?

最佳答案

适用于 Docker 18.09 及更高版本

您可以使用 Docker 的新功能将现有的 SSH 代理连接或 key 转发给构建器。例如,这可以在构建期间克隆您的私有(private)存储库。

步骤:

首先设置环境变量以使用新的 BuildKit

export DOCKER_BUILDKIT=1

然后使用新的(实验性)语法创建 Dockerfile:

# syntax=docker/dockerfile:experimental

FROM alpine

# install ssh client and git
RUN apk add --no-cache openssh-client git

# download public key for github.com
RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts

# clone our private repository
RUN --mount=type=ssh git clone git@github.com:myorg/myproject.git myproject

并使用构建图像

docker build --ssh default .

在此处了解更多信息:https://medium.com/@tonistiigi/build-secrets-and-ssh-forwarding-in-docker-18-09-ae8161d066

关于docker - docker build 期间的 SSH 代理转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43418188/

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