Я настроил среду Cloud9 с использованием экземпляра T2.micro, и я хочу иметь возможность отлаживать код Python, однако мой случай использования немного уникален. Я хочу использовать Docker-контейнер, который развертывается в качестве основы для выполнения моего кода Python, очень похожего на функцию отладки Docker InteliJ для Python, однако в итоге я получаю сообщение об ошибке: Could not connect debugger to the debugger proxy
. У меня есть следующая конфигурация в моем файле запуска Python3:
{
"script": [
"if [ \"$debug\" == true ]; then ",
" docker run --rm --expose 15471 -p 15471:15471 -v /home/ubuntu/environment/:/project_directory little-test:latest sh -c \"python3 -m ikp3db -ik_p=15471 test.py \"",
//original" python3 -m ikp3db -ik_p=15471 -ik_cwd=$project_path \"$file\" $args",
"else",
" docker run --rm -v /home/ubuntu/environment/:/project_directory little-test:latest sh -c \"python3 test.py\"",
"fi",
"checkExitCode() {",
" if [ $1 ] && [ \"$debug\" == true ]; then ",
" python3 -m ikp3db 2>&1 | grep -q 'No module' && echo '",
" To use python debugger install ikpdb by running: ",
" sudo yum update;",
" sudo yum install python36-devel;",
" sudo pip-3.6 install ikp3db;",
" '",
" fi",
" return $1",
"}",
"checkExitCode $?"
],
"python_version": "python3",
"working_dir": "$project_path",
"debugport": 15471,
"$debugDefaultState": false,
"debugger": "ikpdb",
"selector": "^.*\\.(py)$",
"env": {
"PYTHONPATH": "$python_path"
},
"trackId": "Python3"
}
Однако, запустив скрипт с этим, я получаю красное всплывающее окно в верхней части Cloud9 IDE, которое говорит: Could not connect debugger to the debugger proxy
. Я подумал, что, возможно, я неправильно настроил некоторые параметры порта, поэтому я проверил sudo lsof -i -P -n
для оригинального и измененного соответствующих битов:
оригинал
python3 19833 ubuntu 3u IPv4 201049 0t0 TCP 127.0.0.1:15471 (LISTEN)
python3 19833 ubuntu 4u IPv4 201050 0t0 TCP 127.0.0.1:15471->127.0.0.1:33800 (ESTABLISHED)
изменено
docker-pr 7805 root 4u IPv4 154992 0t0 TCP 127.0.0.1:15471 (LISTEN)
Кажется, единственное отличие - это пользователь, которому он принадлежит. Любые предложения будут ценны!