हाँ।
सबसे पहले, यह जान लें कि depends-on
लगभग पूरी तरह से बेकार है। डॉकर आपके आवेदन के बारे में कुछ भी नहीं जानता है; यह बताने का कोई तरीका नहीं है कि आपका डेटाबेस सर्वर वास्तव में सेवा अनुरोधों के लिए तैयार नहीं है।
सही समाधान यह है कि आप अपने एप्लिकेशन को कोड करें ताकि (ए) यह तैयार होने तक प्रारंभिक डेटाबेस कनेक्शन का पुन:प्रयास करेगा, और (बी) यदि कनेक्शन विफल होना चाहिए तो यह डेटाबेस से फिर से कनेक्ट हो जाएगा। (ए) उस समस्या को हल करता है जिसके बारे में आप पूछ रहे हैं, और (बी) आपको एप्लिकेशन कंटेनर से स्वतंत्र डेटाबेस कंटेनर को पुनरारंभ करने की अनुमति देता है।
यदि आप अपने एप्लिकेशन कंटेनर में कोड को नियंत्रित नहीं करते हैं, तो आप अपने मुख्य कमांड को एक शेल स्क्रिप्ट के साथ लपेट सकते हैं जो कुछ इस प्रकार है:
while ! psql -c 'select 1'; do
sleep 1
done
(उपयुक्त प्रमाणीकरण विकल्प सेट करना या .pgpass
सेट करना फ़ाइल)