2015-08-25 1 views
1

Это мои первые 2 часа, используя докер. Я импортировал изображение linux из centos 4.0.6 (требование проекта).Добавление файла хоста в контейнер докеров - от Dockerfile

Я понимаю, что есть другие вопросы, описывающие копирование файлов с хоста на контейнер докеров, но я хочу скопировать файл из узла в контейнер во время создания контейнера - например. через команду Dockerfile.

Моя причина попытки это выглядит следующим образом:

Так что мой Dockerfile должен оформить код с сервера SVN и построить затем выполнить скомпилированный код.

Соединение svn использует протокол svn + ssh. Поскольку пользователь в контейнере является root, я добавляю соответствующего пользователя ssh в файл ~/.subversion/config и не настраиваю StricthostKeyChecking.

В моем докере

в моем dockerfile:

RUN echo "[tunnels]" > ~/.subversion/config 
RUN echo "ssh = ssh -l mysvnuser" >> ~/.subversion/config 
RUN echo -e "Host svnserver.lan\n\tStrictHostKeyChecking no\n" >> /root/.ssh/config 
RUN svn co svn+ssh://svnserver.lan/svn/bananas/branches/Ti_2.4 bananas 
... 

я получаю следующее сообщение об ошибке аутентификации SVN:

Warning: Permanently added 'svnserver.lan,192.168.1.8' (RSA) to the list of known hosts. 
Permission denied, please try again. 
Permission denied, please try again. 
Permission denied (publickey,gssapi-with-mic,password). 
svn: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file. 
svn: Network connection closed unexpectedly 

Так что я знаю, что мне нужно добавить id_rsa mysvnuser в чтобы решить эту проблему, но будет ли svn использовать id_rsa из /root/.ssh или /home/mysvnuser/.ssh?

Кто-нибудь успешно передал файл с хоста докера в контейнер через файл Docker?

+1

Посмотрите инструкции ADD и COPY в файле aDocker, см. Doc https://docs.docker.com/reference/builder/ – user2915097

ответ

3

В каталоге, содержащем файл Docker, вы просто добавить файл, который вы хотите передать в контейнер, как так:

ADD name-of-file.extension/

Это поместит файл в корневом каталоге вашего контейнера, изменить / к тому, что вы хотите, чтобы поместить файл в нужное место.

+0

Я пробовал это - например. с ADD /home/me/.ssh/id_rsa/ Это не сработало. –

+0

Я пропустил бит «В папке, содержащей ваш файл докера», работает! –