Dockerfile не может найти мой закрытый ключ ssh

Я пытаюсь создать файл докеров, чтобы он клонировал частное репо. Я считаю, что я добавил правильный код для этого, но он продолжает бросать эту ошибку:

build: id_rsa: no such file or directory

Я убедился, что путь правильный, и что ключ находится там, и попробовал множество других решений, предлагаемых здесь, например, раскомментировать IdentityFile в ssh_config безрезультатно. Вот мой файл докеров:

FROM ubuntu:latest
MAINTAINER John Fink <john.[removed_email]>
RUN apt-get update # Thu Nov 7 22:40:44 EST 2013
RUN apt-get install -y mysql-client mysql-server apache2 libapache2-mod-php5 pwgen python-setuptools vim-tiny php5-mysql git
RUN easy_install supervisor
ADD id_rsa /root/.ssh/id_rsa
ADD known_hosts /root/.ssh/known_hosts
RUN echo " IdentityFile /root/.ssh/id_rsa" >> /etc/ssh/ssh_config
RUN cd /var/www
RUN git clone [removed_email]onky.com:eric/hartshorn-portraiture.git
ADD ./start.sh /start.sh
ADD ./foreground.sh /etc/apache2/foreground.sh
ADD ./supervisord.conf /etc/supervisord.conf
RUN chmod 755 /start.sh
RUN chmod 755 /etc/apache2/foreground.sh
EXPOSE 80
CMD ["/bin/bash", "/start.sh"]
</john.[removed_email]>
2 ответа

Является ли ваш файл id_rsa в текущем каталоге, где находится ваш файл Docker? Попробуйте указать полный путь к ней.


Я сделал более грубую версию для просмотра, и

FROM ubuntu
RUN apt-get -yq install ssh
ADD .ssh /root/.ssh/
CMD bash

терпит неудачу -

sven@mini:~/src/docker/tmp$ docker run -rm -t -i test 
root@810a2b43ed12:/# ls -la /root
total 20
drwx------ 3 root root 4096 Feb 20 04:12 .
drwxr-xr-x 45 root root 4096 Feb 20 04:17 ..
-rw-r--r-- 1 root root 3106 Apr 19 2012 .bashrc
-rw-r--r-- 1 root root 140 Apr 19 2012 .profile
drwx------ 2 1000 1000 4096 Feb 20 04:04 .ssh
root@810a2b43ed12:/# ssh sven@192.168.1.220
Bad owner or permissions on /root/.ssh/config
root@810a2b43ed12:/# chown -R root:root /root/.ssh/
root@810a2b43ed12:/# ssh sven@192.168.1.220
Linux mini 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64

поэтому я бы сказал, что вам просто нужно сделать

RUN chown -R root:root /root/.ssh

и вам должно быть хорошо идти.

licensed under cc by-sa 3.0 with attribution.