在VS代码中调试django应用程序(本地)可以';找不到我的数据库容器数据库
在VS代码中运行调试配置时:在VS代码中调试django应用程序(本地)可以';找不到我的数据库容器数据库,django,docker,visual-studio-code,docker-compose,virtualenv,Django,Docker,Visual Studio Code,Docker Compose,Virtualenv,在VS代码中运行调试配置时: "configurations": [ { "name": "Django Tests", "type": "python", "request": "launch", "program": "${workspaceFolder}/src/manage.py", "args": [ "test", "src" ],
"configurations": [
{
"name": "Django Tests",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/src/manage.py",
"args": [
"test",
"src"
],
"django": true
}
我得到这个错误:
django.db.utils.OperationalError:无法将主机名“db”转换为地址:名称或服务未知
正常运行应用程序时,我没有此问题:
/src/manage.py运行服务器
db
是我的容器化postgresql数据库
services:
db:
container_name: db
build: ./postgresql
expose:
- "5432"
ports:
- 5432:5432
...
也许我没有使用正确的python路径?我应该在python虚拟环境中运行它,但我不确定如何在VS代码配置中设置它,如果这是问题的话
这是我的设置
看起来db在本地是可见的:
$ docker logs db
PostgreSQL Database directory appears to contain a database; Skipping initialization
以下是我尝试选择调试配置时运行的命令CS代码:
(venv) me@host:/path/to/myproject/$ env DEBUGPY_LAUNCHER_PORT=36867 /path/to/myproject/venv/bin/python3 /home/me/.vscode/extensions/ms-python.python-2020.3.71659/pythonFiles/lib/python/debugpy/no_wheels/debugpy/launcher /path/to/myproject/src/manage.py runserver --noreload
您需要确保vs代码可以找到主机
db
,或者直接使用127.0.0.1
在您重写环境的情况下,
“envFile”:“
成功了。您能解析主机名db
localy吗?$docker logs db PostgreSQL数据库目录似乎包含一个数据库;跳过初始化我的意思是:主机名db
是否解析为本地计算机上的ip地址?(例如,pingdb
)然后您就设置了“POSTGRES\u主机”、“127.0.0.1”
。我猜vc代码不知道在哪里可以找到主机:db
。您可以将127.0.0.1 db
添加到您的/etc/hosts
并再次测试吗?感谢您的帮助,我在VS代码配置中添加了“envFile”:“
,它不再寻找db。你想从中找出一个答案让我接受吗?
(venv) me@host:/path/to/myproject/$ env DEBUGPY_LAUNCHER_PORT=36867 /path/to/myproject/venv/bin/python3 /home/me/.vscode/extensions/ms-python.python-2020.3.71659/pythonFiles/lib/python/debugpy/no_wheels/debugpy/launcher /path/to/myproject/src/manage.py runserver --noreload