如何使用 docker 中挂载的 ssh 用于 Dockerfile 中的后续命令

How to use the mounted ssh in docker for subsequent commands in Dockerfile

我必须在 运行 使用 CMD 连接我的容器时执行 git 推送。 但是 ssh 在最后一行中不可用,即在 CMD 部分中,无法执行 git 推送。 我可以在这里做什么来获取 git 推送的 ssh 密钥?有人请帮助我。

请找到我的Dockerfile

# syntax = docker/dockerfile:1.0-experimental
FROM continuumio/anaconda3

# Install git
RUN apt-get update && apt-get install -y git

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

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

CMD python myproject/src/example.py && git push

然后我在 运行

期间使用以下命令传递我的 ssh 密钥
docker build --ssh default .

如“BuildKit / Using SSH to access private data in builds" and "Build secrets and SSH forwarding in Docker 18.09”中所见,我看到它用于:

  • --mount=type=ssh
  • 仅在 RUN 行,不在 CMD

因此在 docker build 期间与 RUN 一起工作。
使用 CMD

在运行时 (docker run) 可能不起作用