云计算核心技术Docker教程:Dockerfile文件RUN命令详解
Dockerfile中的RUN指令将在当今图象顶端的新层中执行一切指令,并提交結果。形成的提交图象将用以中的下一步Dockerfile。
英语的语法文件格式
RUN command(shell形式,指令在shell中运作,默认设置状况下/bin/sh -c在Linux或cmd /S /CWindows上运作)
RUN ["executable", "param1", "param2"]
层次RUN指令和形成提交合乎Docker的关键定义,在Docker上提交是便宜的,而且能够从印象历史数据的一切部位建立器皿,如同源码操纵一样。
在shell形式中,能够应用\(反斜杠)将一条RUN指令再次到下一行。比如,考虑到下列二行:
RUN /bin/bash -c 'source $HOME/.bashrc; \
echo $HOME'
他们在一起等效于下列这一行:
RUN /bin/bash -c 'source $HOME/.bashrc; echo $HOME'
要应用'/ bin / sh'之外的别的shell,请应用exec形式传到需要的shell。比如:
RUN ["/bin/bash", "-c", "echo hello"]
提醒:在EXEC形式被分析为一个JSON列阵,这代表着务必应用双引号“
与shell表单不一样,exec表单不容易启用指令shell。这代表着不容易开展基本的机壳解决。比如, RUN [ "echo", "$HOME" ]将不容易对开展自变量更换$HOME。假如要开展shell解决,则能够应用shell形式或立即执行shell,比如:RUN [ "sh", "-c", "echo $HOME" ]。当应用exec表单并立即执行shell时(比如在shell表单中),是由shell开展系统变量拓展,而不是docker。
RUN下一次搭建期内,指令缓存不容易全自动无效。相近指令的缓存 RUN apt-get dist-upgrade -y将在下一个搭建中器重。RUN指令的缓存能够根据应用--no-cache 标示来使失效,比如docker build --no-cache。
© 本文系原创,著作权归:芦虎导航官网。如需转载,请署名并注明出处:https://www.luhu.co/article/000000000001932.shtml