VPS中Docker运行Telegram Bot遇ValueError报错的解决咨询
问题修复方案
原因分析
你本地编辑的info.py并没有被Docker容器加载,容器运行时用的是镜像scroogex/bot1内部的文件,所以你本地的配置不会生效,导致程序读取不到API_ID的有效值。
解决方法
方法一:通过环境变量传递配置(推荐)
直接在docker run命令里用-e参数传入环境变量,不用修改容器内文件:
sudo docker run -e API_ID=你的API_ID数字 -e API_HASH=你的API_HASH字符串 scroogex/bot1
提示:根据程序需求,可能还需要传入其他必填变量,比如BOT_TOKEN,具体看项目要求
方法二:挂载本地配置文件到容器
把你本地编辑好的info.py挂载到容器对应路径,覆盖镜像里的文件:
- 确保本地
info.py已正确配置API_ID等参数 - 运行容器时用
-v参数挂载:
sudo docker run -v /你的本地路径/info.py:/Film-Detective/info.py scroogex/bot1
替换/你的本地路径/info.py为你实际的文件路径
方法三:重新构建自定义镜像(适合长期复用配置)
- 在本地创建
Dockerfile,内容如下:
FROM scroogex/bot1 COPY info.py /Film-Detective/info.py
- 把编辑好的
info.py和Dockerfile放在同一目录,执行构建命令:
sudo docker build -t my-custom-bot .
- 运行自己构建的镜像:
sudo docker run my-custom-bot
内容的提问来源于stack exchange,提问作者adgtiktok
相关产品推荐
相关产品推荐

