sql >> Base de Datos >  >> RDS >> PostgreSQL

Vinculando Django y Postgresql con Docker

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',                      
    }
  }