【发布时间】:2017-03-21 01:04:06
【问题描述】:
在 docker 中,当容器必须与外部系统通信时,如何根据配置 known_hosts、authorized_keys 和 ssh 连接的要求进行范围?
例如,我正在运行 jenkins 容器并尝试在作业中从 github 签出项目,但连接失败并出现错误 host key verification failed
这可以通过登录容器来解决,手动连接到 github 并在出现提示时信任主机密钥。然而,这不是正确的解决方案,因为一切都需要 100% 自动化(我正在使用 ansible 和 docker 构建 CI 管道)。另一个(笨拙的)解决方案是为正在运行的容器提供 ansible,但这会使事情变得混乱且难以维护。 Jenkins 容器甚至没有 ssh 守护进程,我不确定如何从其他主机 ssh 进入容器。第三种选择是使用我自己的 Dockerfile 扩展 jenkins 映像,其中配置了 ssh,但这将是硬编码并将容器锁定到这个特定环境。
那么,使用 docker 管理(和自动化)与外部系统的连接的正确方法是什么?
【问题讨论】:
标签: jenkins docker ssh configuration ansible