Il file Docker per la tua immagine Django non dovrebbe esporre la porta 5432
poiché nessun server Postgresql sarà in esecuzione in nessun contenitore creato da quell'immagine:
FROM python:3-onbuild
EXPOSE 8000
CMD ["/bin/bash"]
Quindi, mentre esegui il contenitore Django, collegalo con
--link my-postgres:my-postgres
le tue impostazioni per il database non sono corrette.
Nel container Django:127.0.0.1 si riferisce al container Django che non esegue alcun servizio in ascolto sulla porta 5432.
Quindi il tuo file settings.py dovrebbe essere:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydb',
'USER': 'postgres',
'PASSWORD': '',
'HOST': 'my-postgres',
'PORT': '5432',
}
}
Mentre esegui il tuo contenitore Django con:
sudo docker run --link my-postgres:db -v /home/mpmsp/project/ezdict/ezbkend:/usr/src/app -name my-app -i -t my-app
quindi il tuo settings.py il file dovrebbe essere:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydb',
'USER': 'postgres',
'PASSWORD': '',
'HOST': 'db',
'PORT': '5432',
}
}