WORKDIRDockerfile中的关键字指的是什么上下文?是在我docker build从我生产的容器内运行还是在我生产的容器内运行?
我发现自己经常放入RUN cd && ...我的 docker 文件,并希望有另一种方式,我觉得我错过了一些东西。
小智 6
它在容器内。
取自 Dockerfile 参考站点https://docs.docker.com/engine/reference/builder/#workdir
WORKDIR 指令为 Dockerfile 中跟随它的任何 RUN、CMD、ENTRYPOINT、COPY 和 ADD 指令设置工作目录。如果 WORKDIR 不存在,即使它没有在任何后续 Dockerfile 指令中使用,它也会被创建。
因此,RUN cd && ...您可以执行以下操作而不是添加:
WORKDIR /path/to/dir
RUN command
Run Code Online (Sandbox Code Playgroud)
Dockerfile 中的所有COPY路径(除了和ADD指令的前半部分)均指的是镜像文件系统路径。COPY和 的源路径是相对于构建上下文(文件末尾的目录)的ADD相对路径(即使它们以 开头)/docker build,通常是包含 Dockerfile 的目录)的相对路径(即使它们以 开头)。Dockerfile 中的任何内容都不能引用主机上的绝对路径或构建上下文树之外的内容。
这两个 Dockerfile 之间的唯一区别是第二个命令启动的目录。
RUN cd /dir && command1
RUN command2
Run Code Online (Sandbox Code Playgroud)
WORKDIR /dir
RUN command1
RUN command2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1531 次 |
| 最近记录: |