You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

docker-compose跨目录构建服务时COPY文件路径错误如何解决

问题原因

你遇到的路径问题核心是docker-compose配置中相对路径的解析规则和直接执行docker build有差异:

  • docker compose中,build.context的相对路径是相对于docker-compose.yaml文件所在的目录解析的
  • build.dockerfile的相对路径是相对于你设置的build.context路径解析的
  • Linux环境下文件名大小写敏感,需注意Dockerfile的实际命名和配置中的写法一致

正确配置

你之前执行的docker build命令可以正常工作,对应等价的docker-compose.yaml配置如下:

version: "3.9"
services:
  admin:
    # 指定镜像名,和你之前手动build的名称保持一致
    image: feendi/Service1
    build:
      # 构建上下文路径,相对于yaml所在目录(Project/Docker/Service1),对应到Project/Service1
      context: ../../Service1
      # Dockerfile路径,相对于上面设置的context(也就是Project/Service1目录),如果你的Dockerfile实际命名是大写F的DockerFile,这里也要对应修改
      dockerfile: Dockerfile
    # 补充你需要的其他配置,比如端口映射、挂载卷等
    ports:
      - "80:80"

操作方法

配置修改完成后,在Project/Docker/Service1目录执行以下命令即可自动构建并启动服务:

docker compose up -d --build

加上--build参数会强制检查镜像是否需要更新,镜像不存在时自动构建。

排查方法

如果配置后仍有问题,可以用以下命令定位问题:

  • 执行docker compose config,查看解析后的完整配置,确认context和dockerfile的路径是否符合预期
  • 执行docker compose build --no-cache --progress=plain admin,查看构建过程的详细日志,确认构建上下文加载的路径、COPY的文件列表是否正确

内容的提问来源于stack exchange,提问作者Notbad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:36:03