将主机文件添加到Docker容器 – 从Dockerfile

这是我使用docker的第一个2小时。 我已经从centos 4.0.6(项目需求)导入了一个linux镜像。

我意识到还有其他问题描述从主机复制文件到docker容器,但我想在创build容器时从主机复制文件到容器 – 例如通过Dockerfile命令。

我尝试这个的原因如下:

所以我的Dockerfile必须从svn服务器检出一些代码,然后编译然后执行编译的代码。

svn连接使用svn + ssh协议。 由于容器中的用户是root用户,我将相应的ssh用户添加到〜/ .subversion / config文件,并且不configurationStricthostKeyChecking。

在我的docker

在我的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身份validation错误:

 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 

所以我知道我需要添加mysvnuser的id_rsa为了解决这个问题,但会svn从/root/.ssh或/home/mysvnuser/.ssh使用id_rsa?

有没有人通过Dockerfile将文件从Docker主机传输到容器?

在包含docker文件的目录中,只需将要传输的文件添加到容器中,如下所示:

 ADD name-of-file.extension / 

这将把文件放在容器的根目录下,将/更改为任何你想要的文件,以将文件放在适当的位置。