Docker Compose中context值对Dockerfile里COPY指令“.”的影响
问题解答
是的,context 的值直接决定了Dockerfile中 COPY 指令里 . 的含义。
具体说明:
- 在你的
compose.yml配置里,context: .指定了构建上下文为当前目录(即compose.yml所在的文件夹)。 - Dockerfile中
COPY . ${APP_HOME}里的.,指代的就是这个构建上下文目录,而非Dockerfile自身所在的目录。
举个实际项目结构的例子:
project-root/ ├── compose.yml └── docker/ └── local/ └── django/ └── Dockerfile
这里构建上下文是 project-root/,所以 COPY . ${APP_HOME} 会把 project-root/ 下的所有文件(.dockerignore 排除的内容除外)复制到容器内的 ${APP_HOME} 目录,而非仅复制 docker/local/django/ 下的文件。
如果把 context 修改为 ./docker/local/django,那Dockerfile里的 . 就会指向这个子目录,COPY 操作也只会复制该目录下的内容。
内容的提问来源于stack exchange,提问作者Mohammad Ali Amini
相关产品推荐
相关产品推荐

