AWS EC2 Cloud9 在 Docker 容器中调试 Python3
AWS EC2 Cloud9 debugging Python3 in Docker Container
我已经使用 T2.micro 实例设置了一个 Cloud9 环境,我希望能够调试 python 代码,但是我的用例有点独特。我想使用部署的 docker 容器作为执行我的 Python 代码的基础,非常类似于 InteliJ 的 docker 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 [ ] && [ \"$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 ",
"}",
"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)
唯一的区别似乎是它所属的用户。任何建议将不胜感激!
尝试在容器中为 ikp3db 运行 添加 -ik_a=0.0.0.0
参数。如果它将仅附加到容器中的环回地址(这是默认行为),则不应从外部访问它,独立于已发布的端口。
我已经使用 T2.micro 实例设置了一个 Cloud9 环境,我希望能够调试 python 代码,但是我的用例有点独特。我想使用部署的 docker 容器作为执行我的 Python 代码的基础,非常类似于 InteliJ 的 docker 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 [ ] && [ \"$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 ",
"}",
"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)
唯一的区别似乎是它所属的用户。任何建议将不胜感激!
尝试在容器中为 ikp3db 运行 添加 -ik_a=0.0.0.0
参数。如果它将仅附加到容器中的环回地址(这是默认行为),则不应从外部访问它,独立于已发布的端口。