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