git - 如何在 docker 中使用挂载的 ssh 来执行 Dockerfile 中的后续命令
问题描述
在使用 CMD 运行我的容器时,我必须执行 git push。但是 ssh 在最后一行(即 CMD 部分)中不可用,无法执行 git push。我可以在这里做什么来获取 git push 的 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 ”和“ Build secrets and SSH forwarding in Docker 18.09 ”中所见,我看到它用于:
--mount=type=ssh
- 只在线上
RUN
,不CMD
所以这将与 a RUN
, during一起使用docker build
。这在运行时 ( )
可能不起作用docker run
CMD
推荐阅读
- python - 在请求会话中使用用户名和密码登录站点
- angular - Angular-cli v.6 新项目构建失败?
- excel-formula - 单元格值显示为 1。公式无法将值识别为 1
- mysql - 从外部访问 docker 容器内的 mysql db
- c - 进程以退出代码结束,而不是返回主函数
- vue.js - 对何时使用 @client 指令以及访问 Apollo 缓存的不同方式感到困惑
- julia - 如何在 Julia 中将可能是“无”的变量插入字符串?
- javascript - 删除字符串的开头直到找到一个字符
- perl - 使用 Perl Module::Build 在项目上指定 shebang
- php - 将文件添加到 zip 并使用 php 下载 zip