एक डॉकर छवि के एंट्रीपॉइंट शेल स्क्रिप्ट पर मैं यह निर्धारित करना चाहता हूं कि क्या पोस्टग्रेएसक्यूएल कंटेनर कनेक्शन सुन सकता है । माईएसक्यूएल के लिए मैंने निम्नलिखित स्निपेट का उपयोग किया:
while ! mysqladmin ping -h"$MOODLE_DB_HOST" -P $MOODLE_DB_PORT --silent; do echo "Connecting to ${MOODLE_DB_HOST} Failed" sleep 1done
मैं पोस्टग्रेएसक्यूएल का उपयोग करके एक समान कैसे प्राप्त कर सकता हूं?
RUN apt-get update && apt-get install -f -y postgresql-client
फिर एंट्रीपॉइंट स्क्रिप्ट उपयोग पर:
while ! pg_isready -h ${MOODLE_DB_HOST} -p ${MOODLE_DB_PORT} > /dev/null 2> /dev/null; do echo "Connecting to ${MOODLE_DB_HOST} Failed" sleep 1 done
एक और दृष्टिकोण
नेटकैट का उपयोग करके एक और दृष्टिकोण है:
for count in {1..100}; do echo "Pinging mysql database attempt "${count} if $(nc -z ${DB_HOST} ${DB_PORT}) ; then echo "Can connect into database" break fi sleep 5 done
जहां चर ${DB_HOST} डेटाबेस में शामिल मेजबान whilst ${DB_PORT} डेटाबेस पोर्ट शामिल है । टीएचएएस अधिकांश डेटाबेस पर काम करता है (सिवाय इसके कि आप इसके प्रकार का पता लगाना चाहते हैं जहां एक कस्टम स्क्रिप्ट की आवश्यकता है) ।