You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 16.04下Dockerfile.dev存在但docker-compose无法定位的问题求助

解决Docker Compose找不到指定Dockerfile的问题

我之前也碰到过一模一样的坑,核心是没搞明白contextdockerfile路径的相对关系,给你捋清楚:

问题根源

你在docker-compose.yml里设置的context: ./containers/nginx,相当于告诉Docker先切换到这个目录作为构建的上下文环境,然后再去寻找你指定的dockerfile路径。但你写的dockerfile: ./containers/nginx/Dockerfile.dev是相对于项目根目录的路径,这就导致Docker会在./containers/nginx目录下去找./containers/nginx/Dockerfile.dev——这显然不存在,自然抛出错误。

两种可行解决方案

方案1(推荐):修正dockerfile路径(相对于context)

既然context已经指向了./containers/nginx,那dockerfile只需要写文件名即可,因为它是相对于context目录的:

nginx:
  build:
    context: ./containers/nginx
    dockerfile: Dockerfile.dev

方案2:调整context为项目根目录

如果你不想改动dockerfile的路径,也可以把context设为项目根目录,这样dockerfile的路径就和你原来写的一致了:

nginx:
  build:
    context: .
    dockerfile: ./containers/nginx/Dockerfile.dev

额外验证步骤

为了确保文件确实存在,你可以在项目根目录执行这条命令确认:

ls ./containers/nginx/Dockerfile.dev

如果输出文件名,说明文件位置没问题,用上面的方案就能解决问题。

内容的提问来源于stack exchange,提问作者Mikk Küttim

火山引擎 最新活动