【发布时间】:2019-10-22 18:57:30
【问题描述】:
我们有一个工具需要克隆多个 Git 存储库来聚合文档数据。我们希望将该工具放入 Docker 容器中,以便在本地和使用 Jenkins 轻松运行它,并实现可重复性。
Git 存储库托管在需要使用 SSH 密钥进行身份验证的私有服务器上。因此,Docker 容器必须以某种方式访问运行容器的用户的 SSH 密钥。
我们有一个约束列表:
- 我们确实不想在 Docker 映像中嵌入 SSH 密钥
- 我们确实不希望用户构建 Docker 映像。我们认为
Dockerfile不能实现可重复性,而已经生成的 Docker 映像则可以 - 我们确实不希望容器以
root用户身份运行 - 我们想要使用运行容器的主机用户的 SSH 密钥
- 可以为启动容器的命令提供参数(
-v、-u、...)
问题:如果可能,我们如何实现这一目标?
相关:
- Using SSH keys inside docker container(SSH 密钥在构建时传递 - 我们想要运行时)
- Clone private git repo with dockerfile(同样的问题)
-
Inject host's SSH keys into Docker Machine with Docker Compose(以
root运行)
【问题讨论】:
-
我很好奇你为什么认为 Dockerfile 不能实现可重复性。
-
抛开 Dockerfile 问题不谈,我原以为您可以简单地将本地用户的
/home/user/.ssh文件夹(只读)挂载到容器中。然后做一个git clone git@your.git/repo应该使用他们的ssh 密钥。 -
没有理由不能更改用户的成员资格,我想。
-
也许给主机和docker用户一个特定的组,并给这个组读取ssh密钥的权限?