Dockerfile RUN 同时执行多条命令
Dokcerfile中的命令每执行一条即产生一个新的镜像,当前命令总是在最新的镜像上执行。如下Dockerfile:
RUN cd /usr/share/ngnix/html
RUN npm install
本来是想在/usr/share/nginx/html目录下执行npm install安装相关module的,但是第二条指令的执行目录并没有在我们希望的/usr/share/ngnix/html下,而是重新回到了/bin/sh根目录下执行。那么我们就必须得在同一条RUN指令中执行这两个命令,当然,也可以把相关目录直接拷贝到根目录下,不过这样会造成文件目录混乱,不建议使用这个办法。Dockerfile RUN同时执行多条命令格式如下所示:
RUN /bin/sh -c 'cd /usr/share/nginx/html/ && npm install'
要添加更多命令直接在后面添加&& your cmd即可。
本文介绍如何在Dockerfile中正确使用RUN命令来执行多个命令,确保所有操作都在期望的目录中进行。通过示例展示了如何在一个RUN命令中组合多个步骤,避免因每个RUN命令默认创建新镜像而导致的工作目录回退问题。

3万+

被折叠的 条评论
为什么被折叠?



