首页 > 解决方案 > Pycharm调试docker compose中的manage.py命令

问题描述

我有一个非常简单的设置。我正在运行 Pycharm 2018.2.3 并使用 docker compose 来启动 3 个容器。

  1. 我的 Django 应用程序
  2. NGINX 提供静态服务
  3. Postgres 数据库

我已经为调试容器配置了远程解释器,并且断点在大多数情况下都可以正常工作,至少当我点击我的 API 端点或对 django 应用程序执行一些其他操作时。

什么不起作用,是当我运行我的管理自定义 manage.py 自定义命令之一时。到目前为止,我已经尝试了这两种方法。

  1. 我在 PyCharm 中设置了另一个调试配置来执行命令。这导致另一个容器旋转(代替原来的容器。运行命令,而不会中断任何换行符。然后整个容器关闭。

  2. 我已经登录到容器,直接通过命令行运行 manage.py 命令,它在容器中执行,但又没有断点。

该文档似乎在正常情况下工作,但我找不到在容器中调试这些命令的任何帮助。

感谢您提供任何帮助或提示。

标签: pythondjangodockerpycharmremote-debugging

解决方案


只是更新,以防有人遇到类似问题。我个人的解决方案是不使用 manage.py 命令,而是通过 http 调用使这些相同的命令可用。

我发现简单地拥有一个像 myserver.com/api/do-admin-function 这样的端点并将其限制为管理访问更容易(而且通常更有用)。

当我在我的代码中放置一个断点时,即使在容器中运行,它也会按预期中断并允许我以我想要的方式进行调试


推荐阅读