Dockerfilen för din Django-bild bör inte exponera port 5432
eftersom ingen Postgresql-server kommer att köras i någon behållare som skapats från den bilden:
FROM python:3-onbuild
EXPOSE 8000
CMD ["/bin/bash"]
Sedan när du kör Django-behållaren länkar du den till
--link my-postgres:my-postgres
dina inställningar för databasen är felaktiga.
I Django-behållaren:127.0.0.1 hänvisar till Django-behållaren som inte kör någon tjänst som lyssnar på port 5432.
Så filen settings.py bör vara:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydb',
'USER': 'postgres',
'PASSWORD': '',
'HOST': 'my-postgres',
'PORT': '5432',
}
}
När du kör din Django-behållare med:
sudo docker run --link my-postgres:db -v /home/mpmsp/project/ezdict/ezbkend:/usr/src/app -name my-app -i -t my-app
sedan din settings.py filen måste vara:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydb',
'USER': 'postgres',
'PASSWORD': '',
'HOST': 'db',
'PORT': '5432',
}
}