Docker Buildkit SSH/Github 困境

Docker Buildkit SSH/Github woes

我正在尝试编写一个 Docker 文件,从 github 中提取私有存储库。问题是我无法让 Docker buildkit 正确使用我的 SSH 密钥。即使使用 their website 中的精确说明和示例代码也不起作用。这是我所做的:

  1. 使用 ssh-keygen -t ed25519 -C my_email@my_company.com
  2. 创建了无密码的 SSH 密钥
  3. 复制了 public 密钥并将其作为 Github 部署密钥添加到我的存储库
  4. ssh-add输入了密钥
  5. 运行 Docker文件
# syntax=docker/dockerfile:1
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 0700 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts

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

适当地替换 myprojectmyorg。将 git clone 命令从 Docker 文件复制粘贴到终端即可。 运行 DOCKER_BUILDKIT=1 docker build --ssh defaultDOCKER_BUILDKIT=1 docker build --ssh default=/path/to/key 都因错误

而失败
 > [4/4] RUN --mount=type=ssh git clone git@github.com/myorg/myrepository.git myrepository
#9 0.262 fatal: repository 'git@github.com/myorg/myrepository.git' does not exist

这里可能发生了什么?我在 MacOS 10.14.6 上使用 Docker 20.10.12 build e91ed57。

这是一种解决方法,而不是问题的解决方案。使用 secrets 代替 --ssh 选项。

# syntax=docker/dockerfile:experimental
FROM alpine
RUN apk add openssh-client git
RUN mkdir -p -m 0700 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts
ENV GIT_SSH_COMMAND="ssh -i /run/secrets/deploy_key"
RUN --mount=type=secret,id=deploy_key git clone git@github.com:myorg/myrepository.git myrepository

使用命令构建

DOCKER_BUILDKIT=1 docker build --no-cache --secret id=deploy_key,src=/Users/Holmes5/.ssh/deploy_key .