我想构建一个Docker容器,从私有GitHub存储库下载一些东西(在构建时!)。这意味着我需要提供SSH密钥,但我不想将它们复制到容器中,因为这样他们就可以访问容器了。
我该如何解决这个问题?
基本上,我正在寻找类似SSH代理转发的东西,但不是在容器运行时,而是在容器构建时。
任何提示?
答案 0 :(得分:0)
一种简单而安全的方法是从git下载到主机,然后将下载的文件从主机复制到容器中。无需钥匙。
获取短容器ID:
docker ps
获取完整的容器ID:
docker inspect -f '{{.Id}}' SHORT_CONTAINER_ID
复制文件(在主机中):
sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE
答案 1 :(得分:-1)
建议的方法是将Dockerfile添加到repo的根目录。克隆工作站上的repo,然后执行“docker build”,它将当前目录(构建上下文)发送到docker守护程序。
通常,几乎不需要在(或服务器上)的Dockerfile中克隆私有存储库。