Docker:RUN cd ...无法正常工作 [英] Docker : RUN cd ... does not work as expected

查看:439
本文介绍了Docker:RUN cd ...无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下Docker文件:

 

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

具有输出:

 

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

当构建(docker构建命令)



看来,RUN cd tmp123没有效果



为什么?

解决方案

实际上是预期的。



但是Docker运行+ docker提交的包装器。

  FROM ubuntu:12.10 
RUN mkdir tmp123
RUN cd tmp123
运行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指令。


The following Dockerfile :


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

has the output :


Uploading context 10240 bytes
Step 1 : FROM ubuntu:12.10
 ---> b750fe79269d
Step 2 : RUN mkdir tmp123
 ---> Running in d2afac8a11b0
 ---> 51e2bbbb5513
Step 3 : RUN cd tmp123
 ---> Running in 4762147b207c
 ---> 644801121b92
Step 4 : RUN pwd
 ---> Running in 3ed1c0f1049d
/
 ---> eee62a068585

when built (docker build command)

it appears that RUN cd tmp123 has no effect

why ?

解决方案

It is actually expected.

A dockerfile is nothing more but a wrapper on docker run + docker commit.

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

Is the same thing as doing:

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)

Each time you RUN, you spawn a new container and therefore the pwd is '/'.

If you feel like it, you can open an issue on github in order to add a CHDIR instruction to Dockerfile.

这篇关于Docker:RUN cd ...无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆