如何使用 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
) 可能不起作用
我必须在 运行 使用 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
) 可能不起作用