Docker容器中的Telethon TelegramClient身份验证

时间:2020-04-23 19:58:29

标签: docker docker-compose telegram two-factor-authentication telethon

我们有一个script,可以使用Telethon用于 Python 的库从电报频道下载文件。

要创建一个 Telethon 实例,我们使用TelegramClient构造函数。此方法要求用户将其 Telegram 号码插入控制台,然后 Telegram 发送一个安全号码,该号码应写回到控制台。

此身份验证保存在名为session的对象/文件/数据库中,因此在下一次执行中,TelegramClient将不再要求输入电话号码。

现在,我想为脚本创建一个Docker映像,这意味着当用户从发布的Image创建容器时,他将必须执行身份验证过程,这就是问题所在:

我们必须以哪种方式最大程度地自动进行此身份验证?

我们可以使用Docker技巧,Telegram / Telethon技巧,甚至Python技巧...

2 个答案:

答案 0 :(得分:2)

您可以通过为会话文件创建bind-mount以及任何配置数据来完成此操作-我建议使用类似python-dotenv的名称。您可以在Dockerfile和Docker Compose中进行设置。有关Dockerfile的信息,请参见here;有关Docker Compose的信息,请参见here

只需确保在容器中为会话文件设置了合理的路径。

答案 1 :(得分:-1)

我将尝试提出一种解决方案。

我们可以将session保存在主机文件系统中,并将session的位置设置为Docker容器的volume

然后,我们可以在容器外创建用于验证和创建此会话的脚本,当容器启动时,它将已经有一个session