vs code таймаут дебаггера python attach process в удаленном docker-контейнере
Необходимо отладить сервер gunicorn в удаленном docker-контейнере
Действую следующим образом:
- Создал docker-контекст для работы с контейнерами по ssh
- В расширении "Docker" для VS Code получил список контейнеров и к нужному выбрал
Attach VS Code - Контейнер загрузился в окне VS Code
- Установил
apt-get update && apt-get install gdb - Установил расширение Python для VS Code в контейнере
- Создал
launch.json:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python Debugger: Attach using Process Id",
"type": "debugpy",
"request": "attach",
"processId": "${command:pickProcess}",
"logToFile": true
}
]
}
- Попробовал запустить отладчик, выбирал разные процессы gunicorn
Однако запустить отладку не удалось по причине Timeout waiting for debug server to connect
Полез смотреть лог: /root/.vscode-server/extensions/ms-python.debugpy-2024.0.0-linux-x64/debugpy.adapter-36535.log
В нем отобразилось две ошибки
Первая:
I+00000.645: Injector[PID=1] output: Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
I+00000.646: Injector[PID=1] output: 0x00007faa2c528724 in __GI_getdomainname (name=0x4 <error: Cannot access memory at address 0x4>, len=140733028513184) at ./misc/getdomain.c:41
I+00000.646: Injector[PID=1] output: 41 ./misc/getdomain.c: No such file or directory.
Вторая (не уверен, что она важна, но пусть будет):
I+00002.036: Injector[PID=1] output: 0x00007faa2c4b4d3c in __pthread_kill_implementation (threadid=1, signo=1, no_tid=6) at ./nptl/pthread_kill.c:29
I+00002.036: Injector[PID=1] output: 29 ./nptl/pthread_kill.c: No such file or directory.
Погуглил про файл ./misc/getdomain.c, он относится к пакету glibc, который, как я понял, ставится вместе с apt-get install libc-bin, однако в контейнере уже этот пакет установлен последней версии
Пробовал также find / -name 'getdomain' - файлов не нашел нигде
Что это может быть за проблема?