python-3.x - 使用 Docker 容器-Django 连接到 postgres
问题描述
我花了几个小时,但无法使用 Docker 容器连接到 postgresql。它正在生成以下错误“密码验证失败”,请解释我在哪里下线并帮助我。先感谢您。
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=app
- POSTGRES_PASSWORD=supersecretpassword
Dockerfile:
FROM python:3.8-alpine
MAINTAINER Leo Developers Ltd
ENV PYTHONUNBUFFERED 1
COPY ./requirements.txt /requirements.txt
RUN apk add --update --no-cache postgresql-client
RUN apk add --update --no-cache --virtual .tmp-build-deps \
gcc libc-dev linux-headers postgresql-dev
RUN pip install -r /requirements.txt
RUN apk del .tmp-build-deps
RUN mkdir /app
WORKDIR /app
COPY ./app /app
RUN adduser -D user
USER user
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'),
}
}
错误:
$ docker-compose up
db_1 | 2020-08-16 16:48:26.478 UTC [27] FATAL: password authentication failed for user "postgres"
db_1 | 2020-08-16 16:48:26.478 UTC [27] DETAIL: Role "postgres" does not exist.
db_1 | Connection matched pg_hba.conf line 99: "host all all all md5"
app_1 | psycopg2.OperationalError: FATAL: password authentication failed for user "postgres"
app_1 | django.db.utils.OperationalError: FATAL: password authentication failed for user "postgres".
解决方案
推荐阅读
- node.js - 找不到与 @storybook/react-native@^5.0.6 匹配的版本
- angular - 错误为无法读取属性“订阅”。在单元测试时以 7 角激活路线
- dart - 在颤振中访问设备短信
- javascript - 如何在 gatsby 中对用户进行身份验证
- amazon-web-services - 如何将 python 列表转换为可用于在 s3 中创建 csv 文件的动态框架
- javascript - wordpress 中的 fullpage.js:向上滚动会弄乱移动设备上的内容位置
- mysql - 命令 '/bin/sh -c mysql -u wordpress -pwordpress wordpress < /docker-entrypoint-initdb.d/wordpress.sql' 返回一个非零代码:1
- javascript - 使用 JS 的 CSS 360 径向旋转进度
- javascript - 如果隐藏了引导模式,如何在 jquery 中使函数为假?
- python-3.x - 在python中循环使用任何数字的文件名