2017-06-01 386 views
5

在我的Dockefile中,我将ssh密钥添加到了docker中,并从bitbucket中克隆了一个项目。 我可以很容易地在Docker文件中拉另一个分支。在Docker中添加ssh密钥

ARG key 
ARG pub_key 
RUN mkdir /root/.ssh/ 
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts 
ADD $key /root/.ssh/ 
ADD $pub_key /root/.ssh/ 
RUN git clone [email protected]:******************/sql.git 
WORKDIR "/sql" 
RUN git pull origin testBranch 

回购是sucesfully克隆和拉从testBranch 成功地当我运行使用docker run命令该码头工人,并尝试运行任何Git命令它说

Permission denied (publickey). 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 

但SSH密钥是目录/root/.ssh

回答

2

您的密钥是针对用户(/root/.ssh/)添加的。我想当你运行docker run你正在切换到另一个用户(也许,码头)。

如果您将id_rsa.pub添加到正确的用户(用户运行docker run命令后),那么它应该工作。

$ whoami向您显示当前用户。

1

强似键作为ARGS你也可以安装主机的.ssh目录到码头工人与下列选项:

docker run -v /home/<host user>/.ssh:/home/<docker user>/.ssh <image>