【发布时间】:2013-08-10 18:39:52
【问题描述】:
我有一个应用程序可以使用 Git 执行各种有趣的东西(例如运行 git clone 和 git push),我正在尝试对其进行 docker 化。
我遇到了一个问题,虽然我需要能够将 SSH 密钥添加到容器以供容器“用户”使用。
我尝试将其复制到 /root/.ssh/,更改 $HOME,创建 git ssh 包装器,但仍然没有运气。
这里是 Dockerfile 供参考:
#DOCKER-VERSION 0.3.4
from ubuntu:12.04
RUN apt-get update
RUN apt-get install python-software-properties python g++ make git-core openssh-server -y
RUN add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://archive.ubuntu.com/ubuntu precise universe" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install nodejs -y
ADD . /src
ADD ../../home/ubuntu/.ssh/id_rsa /root/.ssh/id_rsa
RUN cd /src; npm install
EXPOSE 808:808
CMD [ "node", "/src/app.js"]
app.js 运行 git 命令,例如 git pull
【问题讨论】:
-
任何接近这个问题的人都应该考虑到最终的结果,因为如果你不小心的话,很容易造成安全漏洞并在这里忘记它。阅读所有答案并明智地选择。
-
我有一个答案 here,使用
ssh-add,这被认为是安全的(正如 Josh Habdas 上面所说,明智地选择)。我很难让它在 Ubuntu 20.04 上运行,主要是因为调试 docker 很困难(请参阅Debugging Docker build),还因为 AppArmor 和默认情况下必须为id_rsa的密钥名称。