PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menghubungkan Django dan Postgresql dengan Docker

Dockerfile untuk gambar Django Anda seharusnya tidak mengekspos port 5432 karena tidak ada server Postgresql yang akan berjalan di wadah apa pun yang dibuat dari gambar itu:

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

Kemudian saat Anda menjalankan wadah Django yang menghubungkannya dengan

--link my-postgres:my-postgres

pengaturan Anda untuk database salah.

Dalam wadah Django:127.0.0.1 merujuk ke wadah Django yang tidak menjalankan layanan apa pun yang mendengarkan pada port 5432.

Jadi file settings.py Anda seharusnya:

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

Saat Anda menjalankan wadah Django Anda dengan:

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

lalu settings.py . Anda file harus:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah saya menggunakan nilai pengembalian INSERT...RETURNING di INSERT lain?

  2. pg gem sslmode=verify-full, di mana menempatkan sertifikat?

  3. Nxlog im_dbi tidak berfungsi

  4. Django:izin ditolak ketika mencoba mengakses basis data setelah pemulihan (migrasi)

  5. Metode Konversi. Metode yang ditentukan pada tipe tidak dapat diterjemahkan ke dalam ekspresi penyimpanan LINQ ke Entitas