django.db.utils.OperationalError:无法将主机名“ db”转换为地址:名称无法解析

时间:2020-07-28 08:00:42

标签: django docker-compose dockerfile alpine

我的 docker-compose.yml文件

version: "3"

services:
  app:
    build:
      context: .
    ports:
      - "8000:8000"
    volumes:
      - ./app:/app
    command: >
      sh -c "python manage.py runserver 0.0.0.0:8000"
    environment:
      - DB_HOST=db
      - DB_NAME=app
      - DB_USER=postgres
      - DB_PASS=supersecretpassword
    depends_on:
      - db
      
  db:
    image: postgres:13-alpine
    environment:
      - POSTGRES_DB=app
      - POSTGRES_USER=postgres 

我的 settings.py文件

DATABASES = {
       'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'HOST': os.environ.get('DB_HOST'),
        'NAME': os.environ.get('DB_NAME'),
        'USER': os.environ.get('DB_USER'),
        'PASSWORD': os.environ.get('DB_PASS'),
    }

}

当我运行 sudo docker-compose build 时显示

django.db.utils.OperationalError:无法将主机名“ db”转换为地址:名称无法解析

我在哪里弄错了?

1 个答案:

答案 0 :(得分:0)

尝试为您的容器创建网络。

networks:
    backend:

services:
    app:
        networks:
            - "backend"
    db:
        networks:
            - "backend"
相关问题