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

使用docker-compose构建容器时找不到requirements.txt的报错求助

解决Docker构建报错:"/dependecies/requirements.txt" not found

问题背景

执行docker-compose up构建容器时,触发以下错误:

failed to solve: failed to compute cache key: "/dependecies/requirements.txt" not found: not found

项目目录结构:

-root
    -dependencies
        -requirements.txt
    -facadeback
        -Dockerfile
        ...
    -docker-compose.yml
    -main.py

错误原因

  1. 构建上下文范围限制:docker-compose中python_app的build指定为./facadeback/,Docker构建时仅将facadeback目录作为上下文,无法访问上级目录的dependencies文件夹。
  2. 拼写错误:Dockerfile中写的是dependecies(缺少字母n),但实际目录名是dependencies。
  3. COPY路径与工作目录不匹配:Dockerfile先将requirements.txt拷贝到容器根目录,再切换工作目录到/usr/src/app,后续执行pip install -r requirements.txt时会找不到文件。
  4. 卷挂载路径格式错误:docker-compose中卷挂载的容器内路径缺少开头斜杠(./facadeback:usr/src/app应为./facadeback:/usr/src/app,容器内路径必须是绝对路径)。

修复步骤

方案一:调整构建上下文(推荐)

修改docker-compose.yml,将构建上下文改为项目根目录,同时指定Dockerfile的具体路径:

version: '3.9'

services:
  
  python_app:
    build:
      context: ./  # 改为项目根目录作为构建上下文
      dockerfile: ./facadeback/Dockerfile  # 指定Dockerfile位置
    container_name: python-backend
    volumes:
      - ./facadeback:/usr/src/app  # 修正卷挂载路径,添加开头斜杠
    command: sh -c "sleep 10s"
    depends_on:
      - mysql_db

  mysql_db:
    image: mysql
    container_name: mysql-bd
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 1234
    volumes:
      - ./facadeadd/bd:/var/lib/mysql  # 修正容器内路径的斜杠
    ports:
      - '3306:3306'

方案二:修正Dockerfile并调整文件位置(可选)

若不想修改构建上下文,可将requirements.txt移动到facadeback目录下,同时修正Dockerfile中的拼写错误和路径:

FROM python:3

RUN apt-get update -y && apt-get upgrade -y
RUN apt install -y build-essential portaudio19-dev
RUN python -m pip install --upgrade pip

# 修正拼写错误,直接拷贝当前上下文的requirements.txt
COPY ./requirements.txt /usr/src/app/
WORKDIR /usr/src/app

RUN pip install --upgrade pip
RUN pip install torch
RUN pip install -r requirements.txt

CMD ["python", "main.py"]  # 补充.py后缀,避免找不到文件

优化Dockerfile(配合方案一使用)

为利用Docker缓存,将依赖安装步骤提前,减少重复构建时间:

FROM python:3

# 先安装系统依赖
RUN apt-get update -y && apt-get upgrade -y && \
    apt install -y build-essential portaudio19-dev && \
    python -m pip install --upgrade pip

# 先拷贝requirements.txt,依赖不变时复用缓存
COPY ./dependencies/requirements.txt /usr/src/app/
WORKDIR /usr/src/app

# 安装Python依赖
RUN pip install torch && \
    pip install -r requirements.txt

# 最后拷贝应用代码,代码变化不影响依赖层缓存
COPY ./facadeback/ ./

CMD ["python", "main.py"]

验证修复

执行docker-compose build --no-cache重新构建镜像,再执行docker-compose up即可正常启动容器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:25:18