Clone private git repo with dockerfile

Question

I have copied this code from what seems to be various working dockerfiles around, here is mine:

FROM ubuntu

MAINTAINER Luke Crooks “luke@pumalo.org

Update aptitude with new repo

RUN apt-get update

Install software

RUN apt-get install -y git python-virtualenv

Make ssh dir

RUN mkdir /root/.ssh/

Copy over private key, and set permissions

ADD id_rsa /root/.ssh/id_rsa RUN chmod 700 /root/.ssh/id_rsa RUN chown -R root:root /root/.ssh

Create known_hosts

RUN touch /root/.ssh/known_hosts

Remove host checking

RUN echo “Host bitbucket.org\n\tStrictHostKeyChecking no\n” >> /root/.ssh/config

Clone the conf files into the docker container

RUN git clone git@bitbucket.org:Pumalo/docker-conf.git /home/docker-conf

This gives me the error

Step 10 : RUN git clone git@bitbucket.org:Pumalo/docker-conf.git /home/docker-conf
 ---> Running in 0d244d812a54
Cloning into '/home/docker-conf'...
Warning: Permanently added 'bitbucket.org,131.103.20.167' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists. 2014/04/30 16:07:28 The command [/bin/sh -c git clone git@bitbucket.org:Pumalo/docker-conf.git /home/docker-conf] returned a non-zero code: 128

This is my first time using dockerfiles, but from what I have read (and taken from working configs) I cannot see why this doesn't work.

My id_rsa is in the same folder as my dockerfile and is a copy of my local key which can clone this repo no problem.

Edit:

In my dockerfile I can add:

RUN cat /root/.ssh/id_rsa

And it prints out the correct key, so I know its being copied correctly.

I have also tried to do as noah advised and ran:

RUN echo "Host bitbucket.org\n\tIdentityFile /root/.ssh/id_rsa\n\tStrictHostKeyChecking no" >> /etc/ssh/ssh_config

This sadly also doesn't work.

Answer

My key was password protected which was causing the problem, a working file is now listed below (for help of future googlers)

FROM ubuntu

MAINTAINER Luke Crooks “luke@pumalo.org

Update aptitude with new repo

RUN apt-get update

Install software

RUN apt-get install -y git

Make ssh dir

RUN mkdir /root/.ssh/

Copy over private key, and set permissions

Warning! Anyone who gets their hands on this image will be able

to retrieve this private key file from the corresponding image layer

ADD id_rsa /root/.ssh/id_rsa

Create known_hosts

RUN touch /root/.ssh/known_hosts

Add bitbuckets key

RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts

Clone the conf files into the docker container

RUN git clone git@bitbucket.org:User/repo.git

Check if pull needed in Git

Trying to fix line-endings with git filter-branch, but having no luck