Docker:改变目录命令

在docker工人我想这样做:

git clone XYZ cd XYZ make XYZ 

但是因为没有cd命令,我必须每次都传入完整path(使XYZ / fullpath)。 任何好的解决scheme?

您可以运行一个脚本,或一个更复杂的参数运行。 以下是我之前下载的Dockerfile的示例:

 RUN cd /opt && unzip treeio.zip && mv treeio-master treeio && \ rm -f treeio.zip && cd treeio && pip install -r requirements.pip 

由于使用'&&',如果所有先前的命令都成功了,它将只进入最后的'pip install'命令。

事实上,由于每个RUN都创build一个新的提交&(当前)AUFS层,所以如果Dockerfile中有太多的命令,那么您将用尽限制,所以合并RUN(当文件稳定时)可以是非常有用的事情做。

要改变到另一个目录使用WORKDIR 。 WORKDIR之后的所有RUN,CMD和ENTRYPOINT命令将从该目录执行。

 RUN git clone XYZ WORKDIR "/XYZ" RUN make 
 RUN git clone http://username:password@url/example.git WORKDIR /folder RUN make