PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Lier Django et Postgresql avec Docker

Le Dockerfile car votre image Django ne doit pas exposer le port 5432 car aucun serveur Postgresql ne s'exécutera dans un conteneur créé à partir de cette image :

FROM python:3-onbuild
EXPOSE 8000
CMD ["/bin/bash"]

Ensuite, lorsque vous exécutez le conteneur Django en le liant avec

--link my-postgres:my-postgres

vos paramètres pour la base de données sont incorrects.

Dans le conteneur Django :127.0.0.1 fait référence au conteneur Django qui n'exécute aucun service à l'écoute sur le port 5432.

Donc, votre fichier settings.py devrait être :

  DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.postgresql_psycopg2',
       'NAME': 'mydb',                      
       'USER': 'postgres',
       'PASSWORD': '',
       'HOST': 'my-postgres',                      
       'PORT': '5432',                      
    }
  }

Lorsque vous exécutez votre conteneur Django avec :

sudo docker run --link my-postgres:db -v /home/mpmsp/project/ezdict/ezbkend:/usr/src/app -name my-app -i -t my-app

puis votre settings.py le fichier devrait être :

  DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.postgresql_psycopg2',
       'NAME': 'mydb',                      
       'USER': 'postgres',
       'PASSWORD': '',
       'HOST': 'db',                      
       'PORT': '5432',                      
    }
  }