上传本地文件泊坞窗容器

上传本地文件泊坞窗容器

问题描述:

有下面的代码在我Dockerfile:上传本地文件泊坞窗容器

ENV GOVERS 073fc578434b 

RUN cd /usr/local && curl -O http://go.googlecode.com/archive/$GOVERS.zip 
RUN cd /usr/local && unzip -q $GOVERS.zip 

上面的代码下载的zip文件到/usr/local目录,一切正常。但现在我不想下载zip文件,我想从我的本地PC获取ZIP文件到码头集装箱的/usr/local

假设压缩文件名为test.zip,并且位于与Dockerfile相同的目录中,那么您可以在dockerfile中使用COPY指令。然后,您将有:

COPY test.zip /usr/local/ 
RUN cd /usr/local && unzip -q test.zip 

此外,您可以使用ADD指令,而不是COPY也解压缩zip文件,你会不会需要运行unzip命令:

ADD test.zip /usr/local/ 
+0

我用ADD走在/ usr /本地/ go是一个解压缩文件夹,但是它给了我bash:第0行:cd:/ usr/local/go/src:没有这样的文件或目录,但是我的src文件夹位于与你的目录相同的 Dockerfile – pengwang 2014-10-22 09:27:20

+0

请务必阅读[documentation](http://docs.docker.co m/reference/builder /#add)用于“ADD”指令。它的行为有所不同,具体取决于“'和/或''是一个目录还是文件 – Thomasleveil 2014-10-22 09:31:31

+0

我已经阅读它,都是目录,所以我用ADD去/ usr/local /但它给我没有这样的文件或目录 – pengwang 2014-10-22 09:39:24

另一种方法是我开始喜欢使用卷和运行时命令。如果我改变偶然事件,我不喜欢重建图像。

所以我创建了泊坞窗文件的卷转移的东西来回: 在泊坞文件:

RUN mkdir -p /someplace/dropbox 
.... 
CMD ..... ; $POST_START ; tail -f /var/log/messages 

主机:

mkdir /dropbox && cp ~/Downloads/fap.zip /dropbox \ 
docker run -v /dropbox:/someplace/dropbox \ 
    -e POST_START="cp /someplace/dropbox/fap.zip /someplace-else; cd /someplace-else;unzip fap.zip" ..... <image>