我的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文件到docker容器的/usr/local
。
答案 0 :(得分:3)
假设zip文件名为test.zip
并且与Dockerfile位于同一目录中,那么您可以使用dockerfile中的COPY指令。然后你会有:
COPY test.zip /usr/local/
RUN cd /usr/local && unzip -q test.zip
此外,您可以使用ADD指令而不是COPY
来解压缩zip文件,并且您不需要运行解压缩命令:
ADD test.zip /usr/local/
答案 1 :(得分:1)
我开始喜欢的另一种方法是使用卷和运行时命令。如果我改变偶然的事情,我不想重建图像。
所以我在docker文件中创建了一个卷来回传输东西: 在Docker文件中:
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>