![](/img/trans.png)
[英]Django doesn't connect to postgresql database using docker-compose
[英]docker compose cannot connect postgresql database with django
我的 Django 应用程序无法连接到 postgresql。 我将 Dockerfile 用于 django,并使用 docker-compose 和 postgres 官方映像进行构建。
docker-compose.yml
version: '2'
services:
db:
image: eg_postgresql
expose:
- 5432
environment:
- POSTGRES_PASSWORD=docker
- POSTGRES_USER=docker
- POSTGRES_DB=postgres
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/test_application
ports:
- "8000:8000"
links:
- "db:db"
environment:
- DATABASE_URL=postgres://docker:docker@db:5432/postgres
- DJANGO_SECRET_KEY=x7-g-xu^h5k%h8860!7ksn=@)7q9frn9_l6tmefvf)y=0)d!uh
输出:
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Cannot assign requested address
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
docker-compose ps
ubuntu@ip-172-31-7-117:~/dj1/helloworld$ sudo docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------
helloworld_db_1 /usr/lib/postgresql/9.3/bi ... Up 5432/tcp
helloworld_web_1 python3 manage.py runserve ... Up 0.0.0.0:8000->8000/tcp
在应用设置.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'postgres',
'USER': 'docker',
'PASSWORD': 'docker',
'HOST': 'db',
'PORT': '5432',
}
}
我尝试了多种连接方式,但问题是相同的...
尝试用端口替换暴露:- 5432为您的数据库服务提供端口-“5432:5432”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.