Docker容器运行Python程序时无法读取resources目录文本文件的问题求助
解决Docker容器中无法找到resources文件的问题
你的问题根源出在Dockerfile里的COPY命令错误,导致资源文件没被复制到容器内的正确路径。我来一步步帮你排查修复:
问题拆解
你的Dockerfile有两处明显问题:
- 拼写错误:把
resources写成了recources(少了一个字母s) - 目标路径冗余:你已经通过
WORKDIR /event_listener把容器的当前工作目录设为/event_listener,但还是写了event_listener/recources作为目标路径,这会把文件夹复制到/event_listener/event_listener/recources下,和你代码里期望的路径完全不匹配。
修复步骤
1. 修正Dockerfile的COPY命令
把错误的那行:
COPY resources event_listener/recources
替换成:
COPY ./resources ./resources
这行命令会把项目根目录下的resources文件夹完整复制到容器的当前工作目录(/event_listener)下,最终容器内的文件路径会是/event_listener/resources/chain_objects.txt,和你代码里写的resources/chain_objects.txt完全对应。
2. 重新构建并测试
执行命令重新构建镜像:
docker build --no-cache -t event_listener .
然后运行容器验证是否正常:
docker run event_listener
3. (可选)验证容器内的文件结构
如果还是不确定,可以先进入容器查看文件位置:
docker run -it --rm event_listener ls -la /event_listener/resources
你应该能看到chain_objects.txt文件出现在列表里。
补充说明
你的Python代码里的相对路径写法是正确的,因为容器的工作目录已经设为/event_listener,代码中的resources/chain_objects.txt会被自动解析为/event_listener/resources/chain_objects.txt,只要Dockerfile把文件复制到正确位置,就能正常读取。
内容的提问来源于stack exchange,提问作者elad alkabets
相关产品推荐
相关产品推荐

