【发布时间】:2021-03-17 03:44:24
【问题描述】:
我正在使用 VS Code 的“Remove - WSL”扩展来尝试连接到运行 Python 作业的 Docker 容器(由 WSL2 支持)。
python 作业的启动有点像这样:
exec python3 -m debugpy --listen 5678 --wait-for-client some_file.py
在我设置的 docker-compose.yml 文件中
ports:
- "5678:5678"
我使用
运行服务docker-compose up
我的 VS Code launch.json 包含以下内容:
{
"name": "Python: Remote Attach",
"type": "python",
"request": "attach",
"connect": {
"host": "localhost",
"port": 5678
},
"pathMappings": [
{
"localRoot": "/home/myname/tensorflow_models/research",
"remoteRoot": "/home/tensorflow/models/research"
}
]
}
但是,运行上述任务会短暂打开调试栏,然后将其关闭且没有错误消息。
当我执行到容器中时,我可以运行netcat localhost 5678,它会返回 json。但是,当我从 WSL 运行它时,它不会返回任何内容:
netcat localhost 5678
或在 Windows 上通过 powershell:
powercat -c localhost -p 5678
甚至使用容器的 ip 从容器内:
# Manually get ip address
ip a
# Doesn't return anything
netcat <ip> 5678
【问题讨论】:
标签: python docker windows-subsystem-for-linux remote-debugging vscode-debugger