一尘不染

Docker:RUN cd…不能按预期工作

docker

以下Dockerfile:

来自ubuntu:12.10
运行mkdir tmp123
运行cd tmp123
运行密码

具有输出:

上传上下文10240字节
第1步:从ubuntu:12.10
 ---> b750fe79269d
第2步:运行mkdir tmp123
 --->在d2afac8a11b0中运行
 ---> 51e2bbbb5513
步骤3:运行cd tmp123
 --->在4762147b207c中运行
 ---> 644801121b92
步骤4:执行密码
 --->在3ed1c0f1049d中运行
/
 ---> eee62a068585

构建时(docker build命令)

看来RUN cd tmp123没有任何作用

为什么呢?


阅读 568

收藏
2020-06-17

共1个答案

一尘不染

实际上是预期的。

泊坞窗文件不过是docker run + docker commit的包装器。

FROM ubuntu:12.10
RUN mkdir tmp123
RUN cd tmp123
RUN pwd

与做相同的事情:

CID=$(docker run ubuntu:12.10 mkdir tmp123); ID=$(docker commit $CID)
CID=$(docker run $ID cd tmp123); ID=$(docker commit $CID)
CID=$(docker run $ID pwd); ID=$(docker commit $CID)

每次运行时,都会生成一个新容器,因此pwd为’/’。

如果您愿意,可以在github上打开一个问题,以便向Dockerfile添加CHDIR指令。

2020-06-17