Docker运行Python程序报错:[Errno 2] No such file or directory
问题分析与解决方案
嘿,这问题我之前刚踩过坑,其实核心就是容器内的文件路径没对应上,我给你拆解下原因和解决办法:
错误核心原因
你的Dockerfile里的操作逻辑出现了路径错位:
ADD . /code—— 把本地test目录下的所有内容(包括app文件夹)都复制到了容器的/code目录里WORKDIR /code—— 把容器的默认工作目录设置成了/code- 但
CMD ["python", "/app/Main.py"]却直接指向了容器根目录下的/app/Main.py,这个路径根本不存在!因为你的app文件夹实际是在容器的/code/app路径下。
几种可行的解决方案
方案1:修改CMD的路径(推荐)
既然已经设置了WORKDIR /code,直接用相对路径指向app/Main.py就可以:CMD ["python", "app/Main.py"]或者用完整的绝对路径也没问题:
CMD ["python", "/code/app/Main.py"]方案2:调整ADD的目标路径(如果需要把app放在容器根目录)
如果你希望容器里的app直接放在根目录,可以修改ADD命令:ADD ./app /app不过要注意,这样只会复制本地的
app文件夹到容器/app,如果你的项目还有其他依赖文件在test目录下,可能需要额外添加ADD命令把这些文件也复制到容器对应路径。
验证方法
你可以先运行一个临时容器查看文件结构,确认路径是否正确:
docker run -it my_test ls /code
这条命令会列出容器里/code目录下的内容,你应该能看到app文件夹就在里面。
内容的提问来源于stack exchange,提问作者Cook
相关产品推荐
相关产品推荐

