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

无法将manage_db文件复制到Docker WORKDIR的问题求助

问题分析与解决

核心原因

Docker构建时只能访问构建上下文目录及其子目录内的文件。你的docker-compose.yml中build: ./api-yahoo-finance/yahoo指定的构建上下文是yahoo文件夹,而manage_db与api_yahoo_finance是同级目录,不在构建上下文范围内,因此COPY命令找不到该目录。

解决方案(优先推荐)

1. 修改docker-compose构建上下文与Dockerfile路径

将构建上下文切换到项目根目录,同时指定Dockerfile的具体位置,这样就能访问到同级的manage_db:

version: "3.8"
services:
  py-api-yahoo-finance:
    build:
      context: .  # 构建上下文改为项目根目录
      dockerfile: ./api_yahoo_finance/yahoo/Dockerfile  # 指定Dockerfile的相对路径
    ports:
      - "5000:5000"
    container_name: api_yahoo_finance
    command: python manage.py runserver 0.0.0.0:5000

2. 修正Dockerfile中的COPY路径

将原绝对路径/manage_db/*改为基于根上下文的相对路径./manage_db/*(绝对路径会指向宿主机根目录,而非构建上下文):

FROM python:3.8
WORKDIR /yahoo_finance_app
COPY requirements.txt /yahoo_finance_app/requirements.txt
# 使用构建上下文内的相对路径
COPY ./manage_db/* /yahoo_finance_app/manage_db/
RUN pip3 install -r requirements.txt
COPY .. .

额外说明

最后一条COPY .. .在根上下文下会复制项目根目录的所有文件到容器WORKDIR,若仅需复制yahoo目录内的内容,可改为:

COPY ./api_yahoo_finance/yahoo/. .

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 21:30:47