sql >> Databáze >  >> RDS >> PostgreSQL

Propojení Django a Postgresql s Dockerem

Dockerfile pro váš obrázek Django by neměl odhalovat port 5432 protože žádný server Postgresql nebude spuštěn v žádném kontejneru vytvořeném z tohoto obrazu:

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

Poté, když spustíte kontejner Django, propojíte jej s

--link my-postgres:my-postgres

vaše nastavení databáze je nesprávná.

V kontejneru Django:127.0.0.1 odkazuje na kontejner Django, na kterém není spuštěna žádná služba naslouchající na portu 5432.

Váš soubor settings.py by tedy měl být:

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

Při spuštění kontejneru Django pomocí:

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

pak vaše nastavení.py soubor by musel být:

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


  1. PHP PDO neaktualizuje tabulku a nevytváří žádné chyby

  2. Rekurzivní CTE tabulka MySQL neexistuje

  3. Jak zahodit mnoho (ale ne všechny) stoly jedním tahem?

  4. Uložená procedura MySQL vloží více řádků ze seznamu