डॉकरफ़ाइल आपकी Django छवि के लिए पोर्ट 5432
को उजागर नहीं करना चाहिए क्योंकि उस छवि से बनाए गए किसी भी कंटेनर में कोई Postgresql सर्वर नहीं चल रहा होगा:
FROM python:3-onbuild
EXPOSE 8000
CMD ["/bin/bash"]
फिर जैसा कि आप Django कंटेनर को
. से जोड़कर चला रहे हैं
--link my-postgres:my-postgres
डेटाबेस के लिए आपकी सेटिंग्स गलत हैं।
Django कंटेनर में:127.0.0.1 Django कंटेनर को संदर्भित करता है जो पोर्ट 5432 पर कोई सेवा नहीं सुन रहा है।
तो आपकी settings.py फ़ाइल होनी चाहिए:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydb',
'USER': 'postgres',
'PASSWORD': '',
'HOST': 'my-postgres',
'PORT': '5432',
}
}
जैसे ही आप अपना Django कंटेनर चलाते हैं:
sudo docker run --link my-postgres:db -v /home/mpmsp/project/ezdict/ezbkend:/usr/src/app -name my-app -i -t my-app
फिर आपकी settings.py फ़ाइल होनी चाहिए:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydb',
'USER': 'postgres',
'PASSWORD': '',
'HOST': 'db',
'PORT': '5432',
}
}