WorkdirRelativePath
目录
输出
Relative workdir 'app/src' can have unexpected results if the base image changes
描述
在构建阶段指定时,您可以使用绝对路径(如 )或相对路径(如 )。使用相对路径意味着
工作目录是相对于前一个工作目录的
是。因此,如果您的基础镜像用作工作目录,并且
您指定一个相对目录,例如 ,有效的工作
目录变为 。WORKDIR
/build
./build
/usr/local/foo
WORKDIR build
/usr/local/foo/build
如果您使用 a 和
relative path 的 PATH 中,而无需先在同一 Dockerfile 中指定绝对路径。
此规则的基本原理是,对 base 使用相对工作目录
外部构建的镜像容易损坏,因为工作目录可能会更改
upstream 没有警告,导致目录完全不同
层次结构。WorkdirRelativePath
WORKDIR
例子
❌ Bad:这假设在基础镜像中是(如果它发生在上游,则 stage 被破坏)。WORKDIR
/
web
FROM nginx AS web
WORKDIR usr/share/nginx/html
COPY public .
✅ Good:前导斜杠可确保 始终在所需的路径上结束。WORKDIR
FROM nginx AS web
WORKDIR /usr/share/nginx/html
COPY public .