add ssh keys in Docker

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 >> /root/.ssh/known_hosts
ADD $key /root/.ssh/
ADD $pub_key /root/.ssh/
RUN git clone******************/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

  • Print timestamps in Docker Compose logs
  • Why does my docker daemon run the container as an arbitrary non-docker user?
  • Docker mongodb + node js. How to build working image?
  • How can I setup Docker container with individual IP address on EC2 instance?
  • Docker command (cli) defaulting to port instead of socket
  • gsub encoding error when running on Linux Docker Container Invalid byte sequence in US-ASCII
  • 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

  • In Docker, “Error response from daemon: could not choose an IP address to advertise since this system has multiple addresses on different interfaces”
  • How do I deploy updated Docker images to Amazon ECS tasks?
  • Docker on CentOS with bridge to LAN network
  • How can I update DOCKER_OPTS in docker-machine permanently
  • How can I ssh into “Web App On Linux” docker container on Azure?
  • How do you get a file from a windows host to linux docker container?
  • One Solution collect form web for “add ssh keys in Docker”

    Your key is added against root user (/root/.ssh/). I guess when you run docker run you are switching to another user (maybe, docker).

    If you add your to correct user (the user after running docker run command) then it should work.

    $ whoami show you the current user.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.