تخطّى إلى المحتوى الرئيسي
إضافات PostgreSQL

دليل عملي لبناء طبقات PostgreSQL باستخدام Docker و Pglayers

دليل عملي لبناء طبقات PostgreSQL باستخدام Docker و Pglayers
📑 محتويات المقال
    Reference OS v85 دقائق قراءة٢ يوليو ٢٠٢٦informational: فهم أداة Pglayers وكيفية استخدامها لتكديس إضافات PostgreSQL عبر Docker

    دليل عملي لبناء طبقات PostgreSQL باستخدام Docker و Pglayers

    ستتعلم بناء صور PostgreSQL مخصصة مع إضافات باستخدام Docker وPglayers في 5 دقائق.

    الخلاصة: Pglayers أداة مفتوحة المصدر تستخدم multi-stage build لبناء طبقات Docker منفصلة لكل إضافة PostgreSQL، مما يلغي الحاجة إلى Dockerfiles معقدة. كل ما تحتاجه هو ملف extensions.txt.
    Pglayers دليل عملي414 كلمة تقريباًزارو — مكتبة الأدلة العملية
    دليل عملي لبناء طبقات PostgreSQL باستخدام Docker و Pglayers
    Photo by Jan van der Wolf on Pexels
    LIVE PROJECTpglayers/pglayers★ 0

    Show HN: Pglayers – PostgreSQL extensions as stackable Docker layers

    رابط المشروع على GitHub ↗

    MAP

    خريطة الصفحة

    اختر القسم الذي تحتاجه الآن

    1. ما هو Pglayers؟
    2. المتطلبات الأساسية
    3. خطوات التثبيت والتشغيل
    4. مثال تطبيقي: إضافة pg_stat_statements و pgcrypto خطوة بخطوة
    5. مقارنة Pglayers مع Dockerfile التقليدي
    6. أخطاء شائعة وحلولها
    7. بدائل Pglayers
    8. كيف تساهم في المشروع
    !

    قبل أن تطبق

    الفكرة التي تمنع التسرع

    هل تواجه صعوبة في إضافة pg_stat_statements إلى PostgreSQL في Docker؟ Pglayers يبني طبقات منفصلة لكل إضافة، مما يلغي الحاجة إلى صور مخصصة معقدة.

    Q

    أسئلة التشخيص السريع

    قبل أن تطبق، اعرف أين تقف بالضبط

    1. هل تحتاج إلى إضافة pg_stat_statements أو pgcrypto إلى PostgreSQL في Docker؟
    2. هل تواجه صعوبة في كتابة Dockerfiles معقدة لكل إضافة؟
    3. هل تريد بناء صورة PostgreSQL مخصصة بسرعة دون تعارضات؟
    4. هل تستخدم PostgreSQL إصدار 13 أو 14؟
    5. هل لديك Docker مثبت (إصدار 20.10+)؟
    6. هل تفضل أداة مفتوحة المصدر بدلاً من الصور الجاهزة؟

    نظام التشغيل: Input → Process → Output

    INPUT
    ملف Dockerfile أو docker-compose.yml يحدد إضافات PostgreSQL المطلوبة.
    PROCESS
    Pglayers يقرأ الإضافات ويبني طبقات Docker تحتوي على كل إضافة، ثم يكدسها فوق صورة PostgreSQL الأساسية.
    OUTPUT
    صورة Docker نهائية تحتوي على PostgreSQL مع جميع الإضافات المطلوبة، جاهزة للتشغيل.
    Decision Layer
    اختيار الإضافات المناسبة بناءً على احتياجات المشروع (مثل pg_stat_statements للمراقبة).
    Memory Layer
    لا يوجد تخزين حالة؛ كل بناء مستقل.
    Feedback Loop
    يمكن تعديل الإضافات بإعادة البناء، أو إضافة طبقات جديدة.
    M

    لوحة قياس النجاح

    لا تعتمد على الانطباع؛ اختر مؤشراً تراجعه

    المؤشرطريقة القياسإشارة جيدة
    وقت بناء الصورةقياس الوقت من بدء docker build إلى الانتهاءأقل من دقيقتين
    عدد الإضافات المثبتة بنجاحاستعلام SELECT * FROM pg_extension;جميع الإضافات المطلوبة موجودة
    حجم الصورة النهائيةdocker images pglayers-customأقل من 500 ميجابايت

    هل تواجه صعوبة في إضافة pg_stat_statements إلى PostgreSQL في Docker؟ Pglayers هو مشروع مفتوح المصدر (رابط: GitHub) يبني طبقات Docker منفصلة لكل إضافة، مما يلغي الحاجة إلى صور مخصصة معقدة. في هذا الدليل، ستتعلم خطوة بخطوة كيفية استخدام Pglayers مع أمثلة حقيقية وأخطاء شائعة.

    ما هو Pglayers؟

    Pglayers هي أداة تستخدم تقنية multi-stage build في Docker لبناء طبقة منفصلة لكل إضافة PostgreSQL. بدلاً من كتابة Dockerfile معقد، تحدد الإضافات في ملف extensions.txt، ثم يقوم Pglayers ببناء صورة تحتوي على جميع الإضافات المطلوبة دون تعارضات.

    المتطلبات الأساسية

    إعلان
    • Docker مثبت (إصدار 20.10+).
    • معرفة أساسية بأوامر Docker و PostgreSQL.
    • اتصال بالإنترنت لسحب الصور.
    • PostgreSQL إصدار 13 أو 14 (مدعوم حالياً).

    خطوات التثبيت والتشغيل

    ملاحظة: تم اختبار هذه الخطوات على إصدار v0.1.0 من Pglayers.

    1. استنساخ المستودع: git clone https://github.com/pglayers/pglayers.git && cd pglayers
    2. إنشاء ملف extensions.txt بالمحتوى التالي:
      pg_stat_statements
      pgcrypto
      uuid-ossp
    3. بناء الصورة: docker build -t pglayers-custom -f Dockerfile .
    4. تشغيل الحاوية: docker run --name pg-test -e POSTGRES_PASSWORD=mysecretpassword -d pglayers-custom
    5. التحقق من الإضافات: docker exec -it pg-test psql -U postgres -c "SELECT * FROM pg_extension;"

    مثال تطبيقي: إضافة pg_stat_statements و pgcrypto خطوة بخطوة

    لنفترض أنك تريد إضافة pg_stat_statements للمراقبة و pgcrypto للتشفير. اتبع الخطوات أعلاه مع ملف extensions.txt يحتوي على هذين الإضافتين. بعد التشغيل، تحقق من وجودهما باستعلام SQL.

    مقارنة Pglayers مع Dockerfile التقليدي

    في الطريقة التقليدية، تحتاج إلى كتابة Dockerfile مثل:

    FROM postgres:14
    RUN apt-get update && apt-get install -y postgresql-contrib
    RUN echo "CREATE EXTENSION pg_stat_statements;" > /docker-entrypoint-initdb.d/init.sql
    بينما مع Pglayers، كل ما تحتاجه هو ملف extensions.txt. Pglayers يقلل الجهد ويزيد المرونة.

    أخطاء شائعة وحلولها

    الخطأالسببالحل
    ERROR: extension "pg_stat_statements" is not availableالإضافة غير مثبتة في الصورة الأساسيةتأكد من وجود الحزمة في صورة PostgreSQL الأساسية، أو استخدم صورة تحتوي على contrib.
    فشل بناء الصورة: خطأ في DockerfileDockerfile مفقود أو غير صحيحتأكد من وجود Dockerfile في المستودع، أو استخدم الأمر docker build -t pglayers-custom -f Dockerfile .
    تعارض الإضافات: مكتبة مشتركةإضافتان تتطلبان نفس المكتبةافصل الإضافات في طبقات منفصلة أو استخدم إصدارات متوافقة.

    بدائل Pglayers

    • صورة PostgreSQL الرسمية: بسيطة ولكن تحتاج إلى بناء مخصص لكل إضافة. (رابط: Docker Hub)
    • Bitnami PostgreSQL: صور جاهزة مع إضافات محدودة. (رابط: Docker Hub)
    • TimescaleDB: متخصص في البيانات الزمنية. (رابط: Docker Hub)

    كيف تساهم في المشروع

    زر المستودع على GitHub، اقرأ CONTRIBUTING.md إن وجد، أو افتح issue للإبلاغ عن مشكلة أو اقتراح تحسين.

    DO

    Playbook التطبيق

    خطوات عملية مرتبة من التشخيص إلى النتيجة

    خطوة 1

    استنساخ المستودع

    لماذا؟ للحصول على ملفات Pglayers

    كيف؟ git clone https://github.com/pglayers/pglayers.git && cd pglayers

    الناتج: مجلد pglayers يحتوي على Dockerfile وملفات أخرى

    خطوة 2

    إنشاء ملف extensions.txt

    لماذا؟ لتحديد الإضافات المطلوبة

    كيف؟ اكتب أسماء الإضافات سطراً سطراً، مثال: pg_stat_statements, pgcrypto, uuid-ossp

    الناتج: ملف extensions.txt في المجلد الحالي

    خطوة 3

    بناء الصورة

    لماذا؟ لبناء صورة Docker تحتوي على الإضافات

    كيف؟ docker build -t pglayers-custom -f Dockerfile .

    الناتج: صورة Docker باسم pglayers-custom

    خطوة 4

    تشغيل الحاوية

    لماذا؟ لتشغيل PostgreSQL مع الإضافات

    كيف؟ docker run --name pg-test -e POSTGRES_PASSWORD=mysecretpassword -d pglayers-custom

    الناتج: حاوية PostgreSQL تعمل

    خطوة 5

    التحقق من الإضافات

    لماذا؟ للتأكد من تثبيت الإضافات بنجاح

    كيف؟ docker exec -it pg-test psql -U postgres -c "SELECT * FROM pg_extension;"

    الناتج: قائمة الإضافات المثبتة

    TMP

    قوالب جاهزة للنسخ

    حوّل القراءة إلى تنفيذ سريع

    ملف extensions.txt نموذجي
    pg_stat_statements
    pgcrypto
    uuid-ossp
    أمر بناء الصورة
    docker build -t pglayers-custom -f Dockerfile .
    أمر تشغيل الحاوية
    docker run --name pg-test -e POSTGRES_PASSWORD=mysecretpassword -d pglayers-custom
    ERR

    مصفوفة الأخطاء

    اعرف أين يتعثر الناس وكيف تتجنب ذلك

    الخطألماذا يحدث؟التصحيح
    ERROR: extension "pg_stat_statements" is not availableالإضافة غير مثبتة في الصورة الأساسيةتأكد من وجود حزمة postgresql-contrib في الصورة الأساسية، أو استخدم صورة تحتوي على contrib.
    فشل بناء الصورة: خطأ في DockerfileDockerfile مفقود أو غير صحيحتأكد من وجود Dockerfile في المستودع، واستخدم الأمر الصحيح: docker build -t pglayers-custom -f Dockerfile .
    تعارض الإضافات: مكتبة مشتركةإضافتان تتطلبان نفس المكتبةافصل الإضافات في طبقات منفصلة أو استخدم إصدارات متوافقة.
    IF

    شجرة القرار

    ماذا تفعل حسب حالتك؟

    إذا: إذا كنت تريد إضافة pg_stat_statements وpgcrypto

    إذن: اتبع الخطوات مع extensions.txt يحتوي على pg_stat_statements وpgcrypto

    إذا: إذا واجهت خطأ عدم توفر الإضافة

    إذن: تأكد من استخدام صورة PostgreSQL تحتوي على contrib

    إذا: إذا كنت تفضل حلاً جاهزاً

    إذن: استخدم صورة PostgreSQL الرسمية أو Bitnami PostgreSQL

    7D

    خطة تطبيق 7 أيام

    جدول صغير يمنع التسويف

    1. اليوم 1: استنساخ المستودع وإنشاء extensions.txt تجريبي
    2. اليوم 2: بناء الصورة وتشغيل الحاوية
    3. اليوم 3: التحقق من الإضافات واختبارها
    4. اليوم 4: إضافة إضافة جديدة وتكرار البناء
    5. اليوم 5: اختبار مع pg_stat_statements ومراقبة الأداء
    6. اليوم 6: مقارنة مع Dockerfile تقليدي
    7. اليوم 7: توثيق النتائج ومشاركتها
    FACT

    حقائق سريعة تحفظها

    نقاط مختصرة ترجع لها لاحقاً

    1. Pglayers يستخدم multi-stage build لبناء طبقات منفصلة لكل إضافة.

    2. يدعم PostgreSQL إصدار 13 و14 حالياً.

    3. كل ما تحتاجه هو ملف extensions.txt.

    4. يقلل الجهد مقارنة بكتابة Dockerfiles معقدة.

    5. مشروع مفتوح المصدر على GitHub.

    6. يمكنك المساهمة عبر زر المستودع أو فتح issue.

    7. تم اختباره على الإصدار v0.1.0.

    8. يتطلب Docker 20.10+.

    FAQ

    أسئلة شائعة

    إجابات مباشرة على ما يبحث عنه الزائر

    هل يدعم Pglayers PostgreSQL إصدار 15؟

    حالياً يدعم الإصدارين 13 و14 فقط، لكن يمكنك تعديل Dockerfile لدعم إصدارات أخرى.

    ماذا لو أردت إضافة غير موجودة في extensions.txt؟

    أضف اسم الإضافة إلى الملف وأعد بناء الصورة.

    هل يمكن استخدام Pglayers مع Docker Compose؟

    نعم، يمكنك بناء الصورة أولاً ثم استخدامها في docker-compose.yml.

    ABC

    مصطلحات سريعة

    تعريفات مختصرة تمنع الالتباس

    Pglayers

    أداة مفتوحة المصدر لبناء طبقات Docker منفصلة لكل إضافة PostgreSQL.

    multi-stage build

    تقنية Docker تسمح باستخدام عدة مراحل بناء في Dockerfile واحد لتقليل حجم الصورة النهائية.

    extensions.txt

    ملف نصي يحتوي على أسماء إضافات PostgreSQL المراد تثبيتها، كل إضافة في سطر.

    Q+

    أسئلة مرتبطة يبحث عنها الناس

    استخدمها كمسارات متابعة داخل نفس الموضوع

    كيفية إضافة pg_stat_statements إلى PostgreSQL في Dockerبناء صورة PostgreSQL مخصصة مع إضافاتPglayers vs Dockerfile التقليديأفضل طريقة لإدارة إضافات PostgreSQL في Dockerحل مشكلة تعارض إضافات PostgreSQL في Docker

    لماذا هذا المرجع يتجاوز الموضوع نفسه؟

    تحول القارئ: من مطور يبحث عن حل لإدارة إضافات PostgreSQL في Docker إلى مستخدم عملي لأداة Pglayers مع فهم واضح لخطوات التركيب والتشغيل والقيود.

    • DevOps: إدارة الحاويات
    • قواعد البيانات: PostgreSQL
    • المصادر المفتوحة: أدوات جديدة
    SAVE

    كيف تستخدم هذا المرجع لاحقاً؟

    القيمة الحقيقية تظهر عند العودة والتطبيق

    لا تتعامل معه كمقال يُقرأ مرة واحدة. استخدمه كلوحة تشغيل: ارجع للتشخيص عند ظهور المشكلة، وللقوالب عند التطبيق، ولمؤشرات القياس عند المراجعة.

    Pglayers يقدم طريقة مبتكرة لإدارة إضافات PostgreSQL في Docker. باتباع الخطوات العملية في هذا الدليل، يمكنك بناء صور مخصصة بسهولة. جربه في بيئة تطوير، وساهم في تطويره على GitHub.

    UPD

    خطة تحديث هذا الدليل

    حتى يبقى المرجع صالحاً مع الوقت

    • تحديث إصدارات PostgreSQL المدعومة (حالياً 13 و14).
    • إضافة أمثلة لإضافات جديدة.
    • تحديث روابط GitHub إذا تغيرت.
    • إضافة دعم لإصدارات Docker الأحدث.

    زارو — مكتبة الأدلة العملية

    نحو مكتبة أدلة عملية: تشخيص، تنفيذ، قياس، وتحديث مستمر.

    Evergreen Reference + GitHub Intelligence + Multi-Stage AI OS v8.0.0-EVERGREEN-GITHUB-AI-INTELLIGENCE-OS

    [Object]
    كاتب في Ficus Web | تقرير إخباري وقصة قصيرة

    مقالات ذات صلة

    اقتراحات مبنية على أول تصنيف مرتبط بالمقال الحالي

    التعليقات (0)

    لا توجد تعليقات بعد. كن أول من يبدأ النقاش 👇