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

Docker中Python无法读取绑定挂载(bind mounted)文件的问题求助

Docker中Python无法读取绑定挂载(bind mounted)文件的问题求助

大家好,我遇到了一个头疼的问题:我的Python代码在Windows本地运行完全正常,但放到Docker容器里就会抛出找不到文件的异常,明明在Docker Desktop的文件标签里能看到挂载的文件,可Python就是读不到。

先给大家看一下出问题的简化版代码:

env_path = "resources/.env"
if os.path.exists(env_path):
    load_dotenv(env_path)
else:
    raise ResourcesMissing('.env missing')

tg_token_env = "resources/tg_token.env"
if os.path.exists(tg_token_env):
    load_dotenv(tg_token_env)
else:
    raise ResourcesMissing('tg_token.env missing')

下面是我的Docker相关配置文件:

docker-compose.yml 配置

services:
  bot:
    build: .
    volumes:
      - ./media:/app/media:ro
      - ./resources:/app/resources:rw

Dockerfile 内容

FROM python:3.13.5-slim
WORKDIR /usr/src/app
ENV CONTAINER=docker

RUN mkdir -p /app/media
RUN mkdir -p /app/resources

RUN apt-get update
RUN pip install --upgrade pip

COPY . .
# 此处省略安装依赖的步骤
CMD ["python", "bot.py"]

另外我还有个.dockerignore文件,内容是:

media/*
resources/*

我已经排查和尝试过的操作:

  • 确认了Docker Desktop的文件标签里,容器确实已经挂载了目标文件,但Python就是检测不到
  • 试过修改docker-compose.yml的各种写法,调整挂载路径的格式
  • 把.env文件打包进镜像里是能正常读取的,但我必须用绑定挂载的方式来管理这些文件
  • 尝试过在docker-compose.yml里用env_file配置
  • 各种能想到的小调整都试了个遍,但每次运行还是会抛出找不到文件的异常

有没有大佬能帮我分析下这到底是哪里出问题了?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 07:54:31