tdlib / td

Cross-platform library for building Telegram clients
https://core.telegram.org/tdlib
Boost Software License 1.0
6.88k stars 1.41k forks source link

TDLib doesn't work in docker container #2981

Open Jhon-Mosk opened 1 month ago

Jhon-Mosk commented 1 month ago

I'm trying run tdl client in container. And I get next error:

app-1  | [13:46:18 UTC] ERROR: No native build was found for platform=linux arch=x64 runtime=node abi=115 uv=1 libc=musl node=20.15.1
app-1  |     loaded from: /usr/src/app/node_modules/tdl
app-1  | 
app-1  |     err: {
app-1  |       "type": "Error",
app-1  |       "message": "No native build was found for platform=linux arch=x64 runtime=node abi=115 uv=1 libc=musl node=20.15.1\n    loaded from: /usr/src/app/node_modules/tdl\n",
app-1  |       "stack":
app-1  |           Error: No native build was found for platform=linux arch=x64 runtime=node abi=115 uv=1 libc=musl node=20.15.1
app-1  |               loaded from: /usr/src/app/node_modules/tdl
app-1  |           
app-1  |               at load.resolve.load.path (/usr/src/app/node_modules/node-gyp-build/node-gyp-build.js:60:9)
app-1  |               at load (/usr/src/app/node_modules/node-gyp-build/node-gyp-build.js:22:30)
app-1  |               at loadAddon (/usr/src/app/node_modules/tdl/dist/addon.js:14:43)
app-1  |               at init (/usr/src/app/node_modules/tdl/dist/index.js:78:38)
app-1  |               at Object.createClient (/usr/src/app/node_modules/tdl/dist/index.js:142:5)
app-1  |               at Object.createClient (/usr/src/app/lib/tdl/index.js:16:22)
app-1  |               at run (/usr/src/app/main.js:11:31)
app-1  |               at Object.<anonymous> (/usr/src/app/main.js:36:1)
app-1  |               at Module._compile (node:internal/modules/cjs/loader:1358:14)
app-1  |               at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
app-1  |     }

If I run this code without docker, just node, it's work perfect.

# Отчет о подробностях системы
---

## Подробности отчета
- **Дата создания:**                               2024-07-12 16:51:32

## Аппаратная информация:
- **Модель оборудования:**                         ASUSTeK COMPUTER INC. PRIME B250M-PLUS
- **Память:**                                      16,0 ГиБ
- **Процессор:**                                   Intel® Core™ i7-7700K × 8
- **Графика:**                                     NVIDIA GeForce GTX 1060 6GB
- **Ёмкость диска:**                               2,1 ТБ

## Программная информация:
- **Версия прошивки:**                             0808
- **Название ОС:**                                 Fedora Linux 40 (Workstation Edition)
- **Сборка ОС:**                                   (null)
- **Тип ОС:**                                      64-бит
- **Версия GNOME:**                                46
- **Оконный интерфейс:**                           X11
- **Версия ядра:**                                 Linux 6.9.7-200.fc40.x86_64

Docker version 27.0.3, build 7d4bcd8 Docker Compose version v2.27.0-desktop.2 local node v20.15.1 node in docker v20.15.1-alpine

Jhon-Mosk commented 1 month ago

"tdl": "7.4.0" tdlLib: 1.8.33

levlam commented 1 month ago

tdl doesn't provide prebuilt TDLib version for your OS in Docker. You need to build TDLib yourself for it.

Jhon-Mosk commented 1 month ago

I builded TDLib for Alpine and had this error.

levlam commented 1 month ago

tdl is unable to find the built TDLib.

Jhon-Mosk commented 1 month ago

Yes but he is there. Maybe version of TDLib build is 1.8.33 and version of tdl is 7.4.0. And they are not compatible.

levlam commented 1 month ago

They should be compatible, but this is better to be asked in the tdl repository.