我们有一个script,可以使用Telethon用于 Python 的库从电报频道下载文件。
要创建一个 Telethon 实例,我们使用TelegramClient
构造函数。此方法要求用户将其 Telegram 号码插入控制台,然后 Telegram 发送一个安全号码,该号码应写回到控制台。
此身份验证保存在名为session
的对象/文件/数据库中,因此在下一次执行中,TelegramClient
将不再要求输入电话号码。
现在,我想为脚本创建一个Docker映像,这意味着当用户从发布的Image创建容器时,他将必须执行身份验证过程,这就是问题所在:
我们必须以哪种方式最大程度地自动进行此身份验证?
我们可以使用Docker技巧,Telegram / Telethon技巧,甚至Python技巧...
答案 0 :(得分:2)
您可以通过为会话文件创建bind-mount以及任何配置数据来完成此操作-我建议使用类似python-dotenv的名称。您可以在Dockerfile和Docker Compose中进行设置。有关Dockerfile的信息,请参见here;有关Docker Compose的信息,请参见here。
只需确保在容器中为会话文件设置了合理的路径。
答案 1 :(得分:-1)
我将尝试提出一种解决方案。
我们可以将session
保存在主机文件系统中,并将session
的位置设置为Docker容器的volume
。
然后,我们可以在容器外创建用于验证和创建此会话的脚本,当容器启动时,它将已经有一个session
。