पोस्टग्रेएसक्यूएल: डेटाबेस डॉकर कंटेनर चल रहा है या नहीं यह कैसे निर्धारित करें?

एक डॉकर छवि के एंट्रीपॉइंट शेल स्क्रिप्ट पर मैं यह निर्धारित करना चाहता हूं कि क्या पोस्टग्रेएसक्यूएल कंटेनर कनेक्शन सुन सकता है । माईएसक्यूएल के लिए मैंने निम्नलिखित स्निपेट का उपयोग किया:

while ! mysqladmin ping -h"$MOODLE_DB_HOST" -P $MOODLE_DB_PORT --silent; do  echo "Connecting to ${MOODLE_DB_HOST} Failed"  sleep 1done

मैं पोस्टग्रेएसक्यूएल का उपयोग करके एक समान कैसे प्राप्त कर सकता हूं?

पर dockerfile जोड़ें:

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} डेटाबेस पोर्ट शामिल है । टीएचएएस अधिकांश डेटाबेस पर काम करता है (सिवाय इसके कि आप इसके प्रकार का पता लगाना चाहते हैं जहां एक कस्टम स्क्रिप्ट की आवश्यकता है) ।