【发布时间】:2020-11-07 12:24:46
【问题描述】:
我想在 Visual Studio Code 中使用 docker 容器调试我的 Django 应用程序。
Microsoft 发布了如何做到这一点的指南,我一步一步地遵循了该指南: https://code.visualstudio.com/docs/containers/quickstart-python
但是当我尝试运行调试器时,我收到以下错误消息:
Timed out waiting for launcher to connect
这是我一步一步做的:
- 我使用
django-admin startproject helloworld初始化了一个简单的 Django 应用程序 - 在 VS Code 中,我打开了包含
manage.py的文件夹 - 打开命令面板
Ctrl + Shift + P,然后选择Docker: Add Docker Files to Workspace... - 选择应用平台
Python: Django - 包含 Docker Compose 文件
No - 应用入口点的相对路径
manage.py - 您的应用程序侦听哪些端口?
8000
VS Codes 然后创建几个文件(见下文)。
当我尝试启动调试器时(如指南中所示),我收到以下错误消息:
.vscode/launch.json:
{
"configurations": [
{
"name": "Docker: Python - Django",
"type": "docker",
"request": "launch",
"preLaunchTask": "docker-run: debug",
"python": {
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "/app"
}
],
"projectType": "django"
}
}
]
}
.vscode/tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"type": "docker-build",
"label": "docker-build",
"platform": "python",
"dockerBuild": {
"tag": "dockerdebugging:latest",
"dockerfile": "${workspaceFolder}/Dockerfile",
"context": "${workspaceFolder}",
"pull": true
}
},
{
"type": "docker-run",
"label": "docker-run: debug",
"dependsOn": [
"docker-build"
],
"python": {
"args": [
"runserver",
"0.0.0.0:8000",
"--nothreading",
"--noreload"
],
"file": "manage.py"
}
}
]
}
Dockerfile:
# For more information, please refer to https://aka.ms/vscode-docker-python
FROM python:3.8-slim-buster
EXPOSE 8000
# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE 1
# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED 1
# Install pip requirements
ADD requirements.txt .
RUN python -m pip install -r requirements.txt
WORKDIR /app
ADD . /app
# Switching to a non-root user, please refer to https://aka.ms/vscode-docker-python-user-rights
RUN useradd appuser && chown -R appuser /app
USER appuser
# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "helloworld.wsgi"]
requirements.txt:
# To ensure app dependencies are ported from your virtual environment/host machine into your container, run 'pip freeze > requirements.txt' in the terminal to overwrite this file
django==3.0.3
gunicorn==20.0.4
- VS 代码版本:
1.47.1 - Python 扩展版本:
v2020.7.94776
【问题讨论】:
-
您使用的计算机系统是什么?重新加载后是否同样的问题?
-
我使用的是 Ubuntu 18.04,重新加载后没有运气。我刚刚检查过,VS Code 确实成功创建了一个 docker 容器,但无论如何都无法连接。
标签: python django docker visual-studio-code vscode-debugger