这似乎是一个经常被问到的问题。我想再问一次,看看是否有人提出了答案,或者看看是否有人可以提出其他建议。
我们有很多计算机和运行服务,更新它们通常是一件令人头疼的事情。Docker 进来了。我们想自动化这个过程。Docker 可以很好地解决这个问题,但我想自动化构建,以便我们团队中的任何人都可以这样做。
该过程的一部分涉及克隆一些 git 存储库。
我可以做的一件事是使用 shell 脚本在本地克隆 repos,然后将它们复制到图像中,但是由于有一个 dockerfile 可以自动执行操作,因此将说明放在那里似乎很自然。
除了提供 git 凭据之外,这不是问题。
目前我在构建过程中复制了我的 id_rsa。虽然是将其复制过来,从 repo 中提取,然后删除我的凭据。这应该可以正常工作,除了 Dockerfile 不接受用户输入。
当我在 dockerfile 中添加我的 ssh 密钥时,它需要我的密钥密码...docker 只是因为它无法接受用户输入而出现问题。
我如何解决这个问题并仍然自动化该过程?
这是来自 dockerfile 的示例。
FROM ubuntu:14.04
MAINTAINER Senica Gonzalez <senica@gmail.com>
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get -y install git-core
RUN apt-get -y install vagrant
RUN mkdir /home/.ssh
COPY id_rsa /home/.ssh/id_rsa
RUN eval "$(ssh-agent -s)"; ssh-add /home/.ssh/id_rsa; ssh-add -l