使用Dockerfile构建Docker映像时无法更改目录

Her*_*arn 2 docker dockerfile

我正在尝试从Dockerfile创建映像。

# cat Dockerfile 
FROM ubuntu:16.04
COPY $pwd/intel_virtual_gateway_console64_1_9_0.tar /root/
COPY $pwd/login.exp /root/
RUN cd /root
RUN echo $PWD
RUN tar -xvf intel_virtual_gateway_console64_1_9_0.tar 
RUN cd virtualgatewayconsole_package
RUN apt-get update && apt-get install expect \
                      expect-dev
Run Code Online (Sandbox Code Playgroud)

构建映像时,目录不会更改为/ root /。我认为问题可能是tar文件丢失,以确认将其更改为/ root目录后打印当前工作目录。但是我已经在容器中验证了软件包已成功复制到/ root目录。我什至通过试验其他目录也进行了验证,即使目录未更改也是如此。由于此问题,后续步骤失败:

# docker build -t release:1.0 .
Sending build context to Docker daemon  633.2MB
Step 1/8 : FROM ubuntu:16.04
 ---> 6a2f32de169d
Step 2/8 : COPY $pwd/intel_virtual_gateway_console64_1_9_0.tar /root/
 ---> Using cache
 ---> 36e9ea407082
Step 3/8 : COPY $pwd/login.exp /root/
 ---> Using cache
 ---> 578f9f9481d9
Step 4/8 : RUN cd /root
 ---> Running in 07ccfc507888
 ---> ad60f9d31c7e
Removing intermediate container 07ccfc507888
Step 5/8 : RUN echo $PWD
 ---> Running in e0ec2df6a0dc
/
 ---> 979a42368814
Removing intermediate container e0ec2df6a0dc
Step 6/8 : RUN tar -xvf intel_virtual_gateway_console64_1_9_0.tar
 ---> Running in 0701db595e27
tar: intel_virtual_gateway_console64_1_9_0.tar: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
The command '/bin/sh -c tar -xvf intel_virtual_gateway_console64_1_9_0.tar' returned a non-zero code: 2
Run Code Online (Sandbox Code Playgroud)

但是能够更改容器内的目录。

# docker run -it 979a42368814 /bin/bash
root@100b02ddc98a:/# pwd
/
root@100b02ddc98a:/# cd /root/
root@100b02ddc98a:~# pwd
/root
Run Code Online (Sandbox Code Playgroud)

请帮助找出导致问题的原因。

use*_*097 6

使用WORKDIR

https://docs.docker.com/engine/reference/builder/#workdir

或一次运行

cd当您在另一个跑步中时,您被“忘记”了

顺便说一句,按照Dockerfile最佳做法中的说明将RUN分组

https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/