You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法在VS Code中调试Docker-Compose部署的Django项目

无法调试Docker-Compose部署的Django项目

我没法在VS Code中调试通过Docker-Compose部署的Django项目。之前在另一个项目里按教程操作时调试完全正常,但当前这套Docker-Compose配置下调试功能失效,有没有人能帮忙排查原因?

Docker-compose配置

version: '3'

services:
  helpdesk_web:
    build:
      context: ./
      dockerfile: Dockerfile
    container_name: helpdesk_web
    volumes:
      - ./static:/usr/src/app/static
      - media:/usr/src/app/media
    ports:
      - "8000:8000"
      - "5678:5678"
    env_file:
      - ./.env
    restart: always
    depends_on:
      - helpdesk_db

  helpdesk_db:
    image: postgres
    container_name: helpdesk_db
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - ./.env
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: something
      POSTGRES_PASSWORD: something
      POSTGRES_USER: something

  nginx:
    build:
      context: ./docker/nginx
      dockerfile: Dockerfile
    container_name: helpdesk_nginx
    restart: on-failure
    depends_on:
      - helpdesk_web
      - helpdesk_db
    ports:
      - "80:80"
    volumes:
      - ./static:/usr/src/app/static
      - media:/usr/src/app/media

volumes:
  postgres_data:
  media:

Dockerfile配置

FROM python:3.10

# 设置容器内工作目录
WORKDIR /usr/src/app

# 禁止Python生成.pyc文件
ENV PYTHONDONTWRITEBYTECODE 1
# 禁止Python缓冲stdout和stderr
ENV PYTHONUNBUFFERED 1

RUN pip install --upgrade pip

# 将本地requirements.txt复制到容器工作目录
COPY requirements.txt .

RUN pip install -r requirements.txt

# 将本地所有文件复制到容器工作目录
COPY . .

RUN chmod +x entrypoint.sh

ENTRYPOINT ["/usr/src/app/entrypoint.sh"]

VS Code launch.json配置

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Django DEBUG",
            "type": "python",
            "request": "attach",
            "pathMappings": [
              {
                "localRoot": "${workspaceFolder}",
                "remoteRoot": "/usr/src/app"
              }
            ],
            "port": 5678,
            "host": "0.0.0.0",
          },
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}\\manage.py",
            "args": [
                "runserver",
            ],
            "django": true,
            "justMyCode": true
        }
    ]
}

manage.py代码

import os
import sys
from django.conf import settings

def main():
    """执行管理任务"""
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'helpdesk.settings')
    
    if settings.DEBUG: 
        import debugpy
        debugpy.listen(('0.0.0.0', 5678))
        print('Attached!')
    
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "无法导入Django。请确认已安装且在PYTHONPATH环境变量中?是否忘记激活虚拟环境?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()

更新补充内容(UPD 1)

settings.py片段

import os
from pathlib import Path

# 构建项目内路径,例如BASE_DIR / 'subdir'
BASE_DIR = Path(__file__).resolve().parent.parent
import environ

env = environ.Env()
env.read_env()
env.read_env(env.str('../../../../', '.tds.env'))
env.read_env(env.str('../', '.env'))

# 快速启动开发设置 - 不适用于生产环境
# 参考官方部署清单文档

# 安全警告:生产环境请保密密钥!
SECRET_KEY = env("DJANGO_SECRET_KEY")

# 安全警告:生产环境请勿开启DEBUG模式!
DEBUG = env("DEBUG")

.env文件内容

DEBUG=True

内容的提问来源于stack exchange,提问作者Алексей Шаков

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:50:29