Docker-compose构建提示找不到Dockerfile,直接构建却正常的问题求助
Docker Compose构建找不到Dockerfile的原因及解决方法
问题原因
在/path/web目录下执行docker-compose up时失败,核心差异在于Docker Compose与直接docker build对Dockerfile路径的解析基准不同:
docker-compose.yml里build.context设为..,即构建上下文是/path目录,此时dockerfile字段的路径是**相对于构建上下文(/path)**的,而你的Dockerfile实际在/path/web下,所以Docker会在/path目录中查找Dockerfile,自然找不到。- 直接用
docker build时,-f Dockerfile指定的路径是**相对于当前工作目录(/path/web)**的,最后一个参数..是构建上下文,因此命令能正确定位到/path/web/Dockerfile,构建正常运行。
解决方法
方法1:调整dockerfile路径(保留/path为构建上下文)
如果你的Dockerfile需要访问/path目录下的file.zip,修改docker-compose.yml的dockerfile字段为相对于/path的路径:
version: "3" services: web: container_name: web build: context: .. dockerfile: web/Dockerfile tags: - "test/example1:latest"
方法2:调整构建上下文(仅用web目录作为上下文)
如果不需要访问/path下的文件,将context改为当前web目录:
version: "3" services: web: container_name: web build: context: . dockerfile: Dockerfile tags: - "test/example1:latest"
内容的提问来源于stack exchange,提问作者eastwater
相关产品推荐
相关产品推荐

