كيو: كيفية تحديد ما إذا كانت حاوية عامل ميناء قاعدة البيانات قيد التشغيل?

على برنامج نصي قذيفة نقطة إدخال صورة عامل الميناء أريد تحديد ما إذا كان حاوية كيو يمكن الاستماع إلى الاتصالات. بالنسبة للخلية ، استخدمت المقتطف التالي:

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} يحتوي على مضيف قاعدة البيانات بينما ${DB_PORT} يحتوي على منفذ قاعدة البيانات. ثس يعمل على معظم قواعد البيانات (إلا إذا كنت ترغب في الكشف عن نوعه وكذلك حيث هناك حاجة إلى برنامج نصي مخصص).