【发布时间】:2018-10-24 14:26:11
【问题描述】:
我正在尝试 dockerize 我的 Django 项目。为此,我试图将整个项目分成两部分
- 一个容器中的整个网络相关的东西。
- 数据库,即另一个数据库中的 Postgres
我正在使用命令创建 Postgres 数据库容器:
docker run --name postgres -it -e POSTGRES_USER=username -e POSTGRES_PASSWORD=mysecretpassword postgres
当这个 postgres 实例开始运行时,我使用以下命令进入了 shell postgres 实例:
docker exec -it postgres /bin/bash
root@ae052fbce400:/# psql -U psql
在我得到的 Psql shell 中,我正在创建名为 DBNAME 的数据库并将所有权限授予username;
webapp 容器内的数据库设置为:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'DBNAME',
'USER': 'username',
'PASSWORD': 'mysecretpassword',
'HOST': 'postgres',
'PORT': 5432
}
}
这是我的 docker-compose.yml 文件
services:
web:
image: 1ce04167758d #image build of webapp container
command: python manage.py runserver
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- postgres
postgres:
image: postgres
env_file:
- .env
expose:
- "5432"
当我运行docker-compose up 时,我收到以下错误:-
web_1 | django.db.utils.OperationalError: FATAL: password authentication failed for user "username"
【问题讨论】:
标签: django database postgresql docker