Docker: How to access to a private github repo using ssh?

docker, git, github, private, ssh

Solution

If you want to use `git` from the Dockerfile, you need to configure the container in the same way as you would configure your own development machine.

I can't really understand which is "their" in "their server", so I'm just guessing.

When you registered a public key with github, you should have got the private key too. That's the `id_rsa` that you see in other examples.

If you can not locate that file, just start over. Delete the old key, generate a new one and configure it on github and on your docker build context (in your example, just copy it in the same folder as the Dockerfile).

As a different strategy, you might want to do the checkout outside of the image build process (clone locally and `ADD` everything to the image).

Problem

I'm trying to clone a private repo from github using Docker. The problem is that I need to use ssh to access to that repo. I added a key in my github project's setting which is used, I suppose, to identify the docker's server. My problem is that I can't figure out what I should write in my Dockerfile so that the server use that key when it tries to access to my github repo. I saw examples where id_rsa is added to the container, but I don't know where id_rsa is stored on their server, if it exists ``` RUN mkdir /root/.ssh/ # can't find the file id_rsa ADD id_rsa /root/.ssh/id_rsa RUN touch /root/.ssh/known_hosts RUN ssh-keyscan github.com >> /root/.ssh/known_hosts run git clone git@github.com:user/repo.git ``` How do I access to my private repo from docker's server ?

Original source