测试人社区

关于dockerfile上下文的疑问

dockerfile在运行build的时候,是
docker build -t Dockerfile .
请问这个. 号的位置,就是指定dockerfile在build的时候的上下文所在的位置吗?也就是会被扫描进docker server中执行的文件?

. 代表设置当前目录为工作目录

那dockerfile构建的上下文是指哪里呢?

docker build 命令会根据 Dockerfile 文件及上下文构建新Docker镜像。构建上下文是指 Dockerfile 所在的本地路径或一个 URLGit 仓库地址)。构建上下文环境会被递归处理,所以,构建所指定的路径还包括了子目录,而 URL 还包括了其中指定的子模块。

现在的疑问是,docker build的时候执行的. 为工作目录,跟Dockerfile构建时候的上下文,说的是一回事吗?也就说,是不是.号决定了上下文的位置。
不知道我表达清楚没有,目前知道.号代表的是指定工作目录,Dockerfile会有上下文递归处理,但是不清楚这两者有没有什么关系?

其实这个就是一个命令的使用帮助问题,以下是我查的docker build的命令

docker build: 用 Dockerfile 构建镜像的命令关键词。
[OPTIONS] : 命令选项,常用的指令包括 -t 指定镜像的名字,
-f 显示指定构建镜像的 Dockerfile 文件(Dockerfile 可不在当前路径下),
如果不使用 -f,则默认将上下文路径下的名为 Dockerfile 的文件认为是构建镜像的 "Dockerfile" 。
上下文路径|URL: 指定构建镜像的上下文的路径,构建镜像的过程中,可以且只可以引用上下文中的任何文件 。