我已经“ docker化”了Django / PostgreSQL应用,并尝试连接到我的数据库 我有2个容器:web和db 它可以工作,但是我无法连接到我的Postgresql数据库
我曾经跑过docker exec -it coverage_africa_db_1 psql -U postgres
,但遇到错误
psql:错误:无法连接到服务器:致命:角色“ postgres”不存在
我尝试通过运行命令docker exec -it aab213f730cd bash
“跳入”我的容器,并尝试使用psql命令进行连接...
psql -d db_dev
psql:错误:无法连接到服务器:致命:角色“根”不存在
或
psql -U postgres
错误:无法连接到服务器:致命:角色“ postgres”不存在
实际上,所有psql选项都不起作用...
.env.dev
SECRET_KEY=*************************************
DEBUG=1
DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 [::1]
SQL_ENGINE=django.db.backends.postgresql
SQL_DATABASE=db_dev
SQL_USER=user
SQL_PASSWORD=user
SQL_HOST=db
SQL_PORT=5432
DATABASE=postgres
DJANGO_SETTINGS_MODULE=core.settings.dev
docker-compose.yml
version: '3.7'
services:
web:
build: ./app
restart: always
command: python manage.py runserver 0.0.0.0:8000
volumes:
- ./app/:/usr/src/app
ports:
- 8000:8000
env_file:
- ./.env.dev
depends_on:
- db
db:
image: postgres:12.0-alpine
restart: always
volumes:
- postgres_data:/var/lib/postgres/data/
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=user
- POSTGRES_DB=db_dev
volumes:
postgres_data:
答案 0 :(得分:0)
对于postgres容器,此:
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=user
- POSTGRES_DB=db_dev
定义如何初始化数据库。如果您没有进行更改,则应该能够以用户“ user”的身份使用密码“ user”进行连接。
如果您确实进行了更改,则实际值是首次启动时出现的值。首次启动后,这些凭据将写入数据库,该数据在postgres_data
卷上。如果要删除数据并使用新凭据重新初始化数据库,请使用docker-compose down -v
。