Docker 无法识别 .env postgres 变量

sko*_*o97 5 python django postgresql docker

编辑:Docker 似乎没有创建我的 postgres 数据库,即使我在我的.env文件中定义了它们。

我已经使用过docker-compose config,看起来 Docker 认可了我的数据:

environment:
    POSTGRES_DB: animemusicsorter
    POSTGRES_PASSWORD: root
    POSTGRES_USER: waifuszn
Run Code Online (Sandbox Code Playgroud)

但是当我运行时docker-compose up,出现以下错误:

postgres    | 2021-07-12 22:39:01.906 UTC [35] FATAL:  password authentication failed for user "waifuszn"
postgres    | 2021-07-12 22:39:01.906 UTC [35] DETAIL:  Role "waifuszn" does not exist.
Run Code Online (Sandbox Code Playgroud)

我尝试删除卷并删除postgres并重新创建它们,但这也没有给我任何结果。

docker-compose.yml

version: '3.5'

services:
  postgres:
    container_name: postgres
    image: postgres:11.6
    ports:
      - "5432:5432"
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: ${DB_NAME}
      POSTGRES_USER: ${DB_USER}
    volumes:
      - ~/srv/docker/template-postgres/data:/var/lib/postgresql/data:rw

  django:
    container_name: django
    build:
      context: .
      dockerfile: ./conf/django/Dockerfile.windows
    command: python manage.py runserver 0.0.0.0:8000
    ports:
      - "8000:8000"
    volumes:
      - ./back:/app:rw
    depends_on:
      - postgres
    env_file:
      - .env

  react:
    container_name: react
    build:
      context: .
      dockerfile: ./conf/react/Dockerfile
    command: yarn run start:dev
    ports:
      - "4000:4000"
    volumes:
      - ./front/src:/app/src:rw
      - ./front/public:/app/public:rw
Run Code Online (Sandbox Code Playgroud)

小智 2

检查您的 Postgres 服务是否传递环境变量:

version: "3"

services:
    django:
        build: .
        restart: on-failure
        container_name: django
        command: bash -rc "python intento/manage.py makemigrations &&
                           python intento/manage.py migrate &&
                           gunicorn --limit-request-line 8190 --workers=3
                           --chdir /usr/src/app/src wsgi:application --bind 0.0.0.0:8000"
        volumes:
            - .:/usr/src/app
        expose:
            - 8000
        env_file:
            - ./.env
        depends_on:
            - pgdb
    pgdb:
        image: postgres
        restart: on-failure
        container_name: pgdb
        environment:
            POSTGRES_USER: ${DB_USER}
            POSTGRES_PASSWORD: ${DB_PASSWORD}
            POSTGRES_DB: ${DB_NAME}
Run Code Online (Sandbox Code Playgroud)

编辑:刚刚看到您给出的示例,将 Postgres 环境属性中的 = 更改为: