如何解决使用Docker容器连接到Postgres-Django
我已经花了几个小时,但是无法通过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".
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。