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