django.db.utils.OperationalError:无法将主机名"db"转换为地址:名称解析暂时失败。Django for Professional Book



这些是我的docker文件得到这个错误,而改变我的引擎从SQLite到PostgreSQL。第一次这样做,下面的书叫做Django的专业人士docker-compose.yml

services:
web:
build: .
command: python /code/manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- 8000:8000
depends_on:
- db
db:
image: postgres
volumes:
- postgres_data:/var/lib/postgresql/data/
volumes:
postgres_data:

dockerfile

FROM python:3.9.6
#set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
#set work directory
WORKDIR /code
#install dependencies
COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv && pipenv install --system
# Copy project
COPY . /code/

根据首尔kim上面的建议,我添加了ports: -5432:5432,它对我有效。

你好,我认为你的问题是在setting.py和数据库中将db更改为本地主机或127.0.0.1