El Dockerfile para su imagen Django no debe exponer el puerto 5432
ya que ningún servidor Postgresql se ejecutará en ningún contenedor creado a partir de esa imagen:
FROM python:3-onbuild
EXPOSE 8000
CMD ["/bin/bash"]
Luego, mientras ejecuta el contenedor Django vinculándolo con
--link my-postgres:my-postgres
su configuración para la base de datos es incorrecta.
En el contenedor de Django:127.0.0.1 se refiere al contenedor de Django que no está ejecutando ningún servicio escuchando en el puerto 5432.
Entonces su archivo settings.py debería ser:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydb',
'USER': 'postgres',
'PASSWORD': '',
'HOST': 'my-postgres',
'PORT': '5432',
}
}
Mientras ejecuta su contenedor 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
luego su settings.py el archivo tendría que ser:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydb',
'USER': 'postgres',
'PASSWORD': '',
'HOST': 'db',
'PORT': '5432',
}
}