2

刚开始使用 Visual Studio 代码进行 python 开发,到目前为止我很喜欢它。我在 docker 上运行的 django 应用程序中进行远程调试时遇到问题。希望有人能指出我正确的方向,通过 docker 在 django 中设置 VS 调试。

我在 docker 容器中运行 Django rest 框架。由于 websocket 连接,我正在使用 asgi 服务器 daphne。我想知道是否有一种方法可以在 django 中与 daphne 工作人员一起在 docker 中使用远程调试。

我看过一些教程,但它们是针对 wsgi 部分的。我遇到的问题是 daphne 使用工作人员连接到 daphne 服务器并以这种方式处理请求。

我尝试过的事情:

  • 可以用来pdb调试。必须连接到工作容器并指定stdin_open: trueand tty: true。它有效,但是是一个乏味的过程。

  • 尝试了指定的教程 URL 中涉及的步骤,但它不适用于 Visual Studio Code。

  • 还尝试在 pycharm 中使用远程调试,但后台骨架进程使我的计算机非常慢。但我能够让它发挥作用。希望我可以在 Visual Studio Code 中做同样的事情。

这是我的 docker-compose.yml 的 daphne 和 daphne worker 设置

  #-- 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"
    }

这给了我一个连接错误。

4

0 回答 0