刚开始使用visual studio代码进行python开发,到目前为止我还喜欢它。我在docker上运行的django应用程序中进行远程调试时遇到问题。希望有人能指出我正确的方向,通过docker在django中设置V.S调试。
我在docker容器中运行Django rest框架。我使用asgi服务器daphne因为websocket连接。我想知道是否有一种方法可以在与daphne worker在docker中运行的django中使用远程调试。
我看了一些tutorial,但它们是wsgi的一部分。我遇到的问题是daphne使用工作人员连接到daphne服务器并以这种方式处理请求。
我尝试过的事情:
能够使用pdb
进行调试。必须连接到工作容器,并指定stdin_open: true
和tty: true
。它有效,但是是一个单调乏味的过程。
尝试了指定的教程URL中涉及的步骤,但它不适用于Visual Studio Code。
还尝试在pycharm中使用远程调试,但后台骨架进程使我的计算机非常慢。但我能够让它发挥作用。希望我能在Visual Studio Code中做同样的事情。
这是我的daphne和daphne工人设置的docker-compose.yml
#-- Daphne Webserver
web:
build:
context: .
dockerfile: Dockerfile
hostname: web
command: daphne -b 0.0.0.0 -p 8001 datuhweb.asgi:channel_layer --access-log=logs/daphne.access.log
environment:
- ENV: 'LOCAL'
expose:
- "8001"
volumes:
- .:/app
#-- Daphne worker
daphne_worker:
build:
context: .
dockerfile: Dockerfile
hostname: daphne_worker
environment:
- ENV: 'LOCAL'
volumes:
- .:/app
command: python -u manage.py runworker -v2
stdin_open: true
tty: true
我收到连接错误。 这是我对visual studio代码的设置
{
"name": "Attach (Remote Debug)",
"type": "python",
"request": "attach",
"localRoot": "/app/",
"remoteRoot": "/app/",
"port": 3500,
"secret": "my_secret",
"host": "172.18.0.8"
}
这给我一个连接错误。