构建Python Docker容器时找不到脚本文件的问题求助
问题分析与解决方法
你的问题出在Dockerfile指令的执行顺序上:
- 先执行
ADD manual_into_ckl.py .时,容器默认工作目录是根目录/,脚本被放到了/manual_into_ckl.py - 之后才设置
WORKDIR /home/johnb切换工作目录 - 最终CMD执行时,是在
/home/johnb下查找脚本,自然找不到
有两种简单的修正方式:
方法一:先设置工作目录,再添加脚本
修改后的Dockerfile:
FROM python:3.10 # 先切换到目标工作目录 WORKDIR /home/johnb # 此时ADD的`.`就是/home/johnb,脚本直接放到这里 ADD manual_into_ckl.py . RUN pip install pandas CMD [ "python", "manual_into_ckl.py"]
方法二:ADD时指定目标路径
如果不想调整指令顺序,可直接把脚本加到目标目录:
FROM python:3.10 # 直接将脚本添加到/home/johnb目录下 ADD manual_into_ckl.py /home/johnb/ WORKDIR /home/johnb RUN pip install pandas CMD [ "python", "manual_into_ckl.py"]
新手排查小技巧
以后再遇到类似文件找不到的问题,可启动容器进入交互式bash查看文件位置:
docker run -it <你的镜像名称> bash
用ls、find命令确认文件实际路径,能更快定位问题。
内容的提问来源于stack exchange,提问作者DHEXX
相关产品推荐
相关产品推荐

