add ssh keys in Docker

Viewed 2725

in my Dockefile i am adding ssh key to the docker and cloning a project from bitbucket. i can pull another branch in the Docker file easily.

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 git@bitbucket.org:******************/sql.git
WORKDIR "/sql"
RUN git pull origin testBranch

the repo is cloned sucesfully and and a pull is made successfully from the testBranch when i run this docker using docker run command and try any git command it says

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

Please make sure you have the correct access rights

but the ssh key is present in the directory /root/.ssh

2 Answers

Instead of passing keys as args you can also mount host's .ssh directory into docker with following options:

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