vs code таймаут дебаггера python attach process в удаленном docker-контейнере

Необходимо отладить сервер gunicorn в удаленном docker-контейнере

Действую следующим образом:

  1. Создал docker-контекст для работы с контейнерами по ssh
  2. В расширении "Docker" для VS Code получил список контейнеров и к нужному выбрал Attach VS Code
  3. Контейнер загрузился в окне VS Code
  4. Установил apt-get update && apt-get install gdb
  5. Установил расширение Python для VS Code в контейнере
  6. Создал 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
        }
    ]
}
  1. Попробовал запустить отладчик, выбирал разные процессы 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' - файлов не нашел нигде

Что это может быть за проблема?


Ответы (0 шт):