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

Docker构建报错:Failed to calculate checksum of ref,路径存在却找不到

排查Docker COPY绝对路径找不到的方案

核心问题说明

Docker构建时,COPY指令的路径是相对于**构建上下文(build context)**的,而非宿主机的全局绝对路径。你当前执行构建的目录是~/PycharmProjects/django_project/docker_files/pcask/,构建上下文默认是该目录,因此Docker无法访问上下文之外的/home/michael/PycharmProjects/django_project/路径。

具体排查与解决步骤

  • 调整构建上下文与COPY路径
    这是最直接的解决方案,有两种方式:

    1. 修改docker-compose.yml的构建配置,指定正确的上下文路径:
      services:
        pcask:
          build: 
            context: /home/michael/PycharmProjects/django_project/
            dockerfile: docker_files/pcask/Dockerfile
      
      然后修改Dockerfile中的COPY为相对上下文的路径:
      # Install dependencies
      COPY requirements.txt .
      RUN pip install -r requirements.txt
      
      # Copy project
      COPY . .
      
    2. 将Dockerfile移动到~/PycharmProjects/django_project/根目录,然后修改docker-compose.yml的build字段为该根目录,COPY同样使用相对路径。
  • 检查.dockerignore文件
    确认~/PycharmProjects/django_project/目录下的.dockerignore没有排除requirements.txt或项目根目录本身。比如如果文件中存在requirements.txt或.这类规则,会导致COPY无法找到目标文件。

  • 验证文件与目录权限
    即使路径存在,Docker构建进程可能缺乏读取权限:

    1. 执行ls -l /home/michael/PycharmProjects/django_project/requirements.txt,查看权限是否为-rw-r--r--(其他用户有读权限)。
    2. 若权限不足,执行以下命令添加读权限:
      sudo chmod o+r /home/michael/PycharmProjects/django_project/requirements.txt
      sudo chmod o+rx /home/michael/PycharmProjects/django_project/
      
  • 清理Docker缓存后重试
    缓存可能导致异常,执行强制无缓存构建:

    sudo docker compose build --no-cache
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 00:29:58