Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VS代码中调试django应用程序(本地)可以';找不到我的数据库容器数据库_Django_Docker_Visual Studio Code_Docker Compose_Virtualenv - Fatal编程技术网

在VS代码中调试django应用程序(本地)可以';找不到我的数据库容器数据库

在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" ],

在VS代码中运行调试配置时:

"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