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

دليل تركيب إضافات PostgreSQL في Docker باستخدام Pglayers

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

    دليل تركيب إضافات PostgreSQL في Docker باستخدام Pglayers

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

    الخلاصة: Pglayers هو مشروع مفتوح المصدر يحول إضافات PostgreSQL إلى طبقات Docker معيارية. يتطلب Docker 20.10+، ويدعم PostgreSQL 16. الخطوات: استنساخ المستودع، إنشاء ملف .env بالإضافات المطلوبة، بناء الصورة، تشغيل الحاوية. يُنصح باستخدامه في بيئات التطوير فقط.
    Pglayers دليل عملي623 كلمة تقريباًزارو — مكتبة الأدلة العملية
    دليل تركيب إضافات PostgreSQL في Docker باستخدام Pglayers
    Photo by Wolfgang Weiser on Pexels
    LIVE PROJECTpglayers/pglayers★ 0

    Show HN: Pglayers – PostgreSQL extensions as stackable Docker layers

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

    MAP

    خريطة الصفحة

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

    1. ما هو Pglayers؟
    2. المتطلبات الأساسية
    3. خطوات التركيب والتشغيل
    4. كيفية استخدام Pglayers مع docker-compose
    5. أخطاء شائعة وحلولها (مأخوذة من Issues المشروع)
    6. مثال عملي: إضافة PostGIS لخريطة سعودية
    7. مقارنة مع Dockerfile التقليدي
    8. بدائل Pglayers
    9. الأسئلة الشائعة
    !

    قبل أن تطبق

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

    تثبيت إضافات PostgreSQL في Docker قد يكون كابوساً: تعارض الإصدارات، Dockerfiles طويلة، وصيانة صعبة. لكن ماذا لو كان بإمكانك تحويل كل إضافة إلى طبقة منفصلة يمكن تكديسها بسهولة؟

    Q

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

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

    1. هل تحتاج إلى تثبيت إضافات PostgreSQL متعددة في Docker دون تعديل Dockerfile يدويًا؟
    2. هل تواجه تعارضات في إصدارات الإضافات عند استخدام الصور الجاهزة؟
    3. هل تبحث عن طريقة معيارية لإدارة إضافات PostgreSQL عبر مشاريع متعددة؟
    4. هل أنت على استعداد لاستخدام مشروع جديد (أقل من 100 نجمة) في بيئة تطوير؟
    5. هل لديك Docker مثبت (إصدار 20.10 أو أحدث) ومعرفة أساسية بأوامره؟
    6. هل تحتاج إلى إضافة PostGIS أو pg_stat_statements أو pg_partman؟
    7. هل تفضل استخدام docker-compose لتشغيل الحاوية؟

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

    INPUT
    ملف Dockerfile أساسي لـ PostgreSQL، قائمة بالإضافات المطلوبة
    PROCESS
    Pglayers يبني طبقة Docker لكل إضافة باستخدام multi-stage builds، ثم يدمجها في صورة نهائية
    OUTPUT
    صورة Docker تحتوي على PostgreSQL مع جميع الإضافات المطلوبة، جاهزة للتشغيل
    Decision Layer
    اختيار الإضافات المناسبة بناءً على احتياجات التطبيق
    Memory Layer
    تخزين الطبقات في Docker cache لتسريع البناء المتكرر
    Feedback Loop
    اختبار الصورة الناتجة، وإضافة/إزالة إضافات حسب الحاجة
    M

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

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

    المؤشرطريقة القياسإشارة جيدة
    وقت بناء الصورةاستخدم الأمر time docker buildأقل من 5 دقائق
    عدد الإضافات المثبتة بنجاحاستعلام pg_available_extensionsتطابق مع الإضافات المحددة في .env
    حجم الصورة النهائيةdocker images pglayersأقل من 500 MB

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

    ما هو Pglayers؟

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

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

    إعلان
    • Docker مثبت على جهازك (إصدار 20.10 أو أحدث).
    • معرفة أساسية بأوامر Docker وdocker-compose.
    • حساب GitHub (لاستنساخ المستودع).
    • اتصال بالإنترنت لتحميل الصور.
    • إصدار PostgreSQL المدعوم: 16 (حسب آخر تحديث للمشروع في يناير 2025).

    خطوات التركيب والتشغيل

    ملاحظة: هذه الخطوات مبنية على README الفعلي للمستودع (آخر تحديث: يناير 2025). قد تختلف التفاصيل حسب التحديثات المستقبلية.

    1. استنساخ المستودع:
      git clone https://github.com/pglayers/pglayers.git
    2. الدخول إلى المجلد:
      cd pglayers
    3. إنشاء ملف .env:
      أنشئ ملفاً باسم .env في المجلد الرئيسي بالمحتوى التالي (يمكنك تعديل الإصدار والإضافات حسب حاجتك):
      PG_VERSION=16
      EXTENSIONS=pg_stat_statements,postgis,pg_partman
    4. بناء الصورة:
      docker build -t pglayers .
      ملاحظة: اسم الصورة 'pglayers' غير موثق رسمياً، لكنه يعمل مع هذا المستودع.
    5. تشغيل الحاوية:
      docker run --name pg -e POSTGRES_PASSWORD=mysecretpassword -d pglayers
    6. التحقق من نجاح التثبيت:
      قم بتشغيل الأمر التالي للتأكد من أن الإضافات مثبتة:
      docker exec pg psql -U postgres -c "SELECT * FROM pg_available_extensions;"
      يجب أن تظهر الإضافات التي حددتها في قائمة الإضافات المتاحة.

    كيفية استخدام Pglayers مع docker-compose

    للاستخدام مع docker-compose، أنشئ ملف docker-compose.yml في نفس المجلد بالمحتوى التالي:

    version: '3.8'
    services:
    db:
    build: .
    environment:
    POSTGRES_PASSWORD: mysecretpassword
    ports:
    - "5432:5432"

    ثم شغّل:
    docker-compose up -d

    أخطاء شائعة وحلولها (مأخوذة من Issues المشروع)

    الخطأالسببالحل
    فشل بناء الصورة بسبب تعارض إصدارات الإضافاتبعض الإضافات لا تدعم إصدار PostgreSQL المحددتأكد من توافق الإضافات مع PG_VERSION في .env، أو غيّر الإصدار
    الحاوية لا تبدأمنفذ 5432 مشغولغير المنفذ في docker-compose أو أوقف الخدمة الأخرى
    الإضافة غير متوفرة بعد التشغيللم يتم تضمينها في .envأضف الإضافة إلى EXTENSIONS وأعد البناء

    مثال عملي: إضافة PostGIS لخريطة سعودية

    في مشاريع التحول الرقمي السعودية، مثل تطبيقات الخرائط أو تحليل المواقع الجغرافية، تحتاج إلى إضافة PostGIS. باستخدام Pglayers، يمكنك ببساطة إضافة 'postgis' إلى متغير EXTENSIONS في ملف .env، ثم إعادة بناء الصورة وتشغيل الحاوية. بعد ذلك، يمكنك التحقق من التثبيت باستخدام الأمر:
    docker exec pg psql -U postgres -c "CREATE EXTENSION postgis;"

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

    بدلاً من كتابة Dockerfile طويل مثل هذا:

    FROM postgres:16
    RUN apt-get update && apt-get install -y postgresql-16-postgis-3
    RUN apt-get install -y postgresql-16-pg-stat-statements

    مع Pglayers، كل ما عليك هو تحديد الإضافات في .env وبناء الصورة. هذا يوفر الوقت ويجعل الصيانة أسهل.

    بدائل Pglayers

    • الصورة الرسمية لـ PostgreSQL: بسيطة لكن بدون إضافات إضافية.
    • صور Bitnami PostgreSQL: تحتوي على بعض الإضافات لكنها محدودة.
    • بناء Dockerfile يدوي: مرن لكنه يتطلب جهداً.
    • أدوات مثل postgres-docker-extensions: مشروع آخر مشابه لكنه أقل شهرة.

    الأسئلة الشائعة

    هل Pglayers متوافق مع جميع إضافات PostgreSQL؟

    ليس بالضرورة. يعتمد على توافق الإضافة مع إصدار PostgreSQL وطريقة بنائها. راجع قائمة الإضافات المدعومة في مستودع المشروع.

    ما الفرق بين Pglayers وطرق التثبيت التقليدية؟

    Pglayers يفصل الإضافات في طبقات منفصلة، مما يسهل الإدارة وإعادة الاستخدام، ويستفيد من Docker layer caching لتسريع البناء.

    هل يمكن استخدام Pglayers في الإنتاج؟

    المشروع جديد (أقل من 100 نجمة على GitHub)، لذا يُنصح بالاختبار في بيئة تطوير أولاً. لا نوصي باستخدامه في الإنتاج دون اختبار مكثف.

    DO

    Playbook التطبيق

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

    خطوة 1

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

    لماذا؟ للحصول على ملفات المشروع محليًا

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

    الناتج: مجلد pglayers يحتوي على Dockerfile وملفات البناء

    خطوة 2

    إنشاء ملف .env

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

    كيف؟ أنشئ ملف .env بالمحتوى: PG_VERSION=16 EXTENSIONS=pg_stat_statements,postgis,pg_partman

    الناتج: ملف .env في المجلد الرئيسي

    خطوة 3

    بناء الصورة

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

    كيف؟ docker build -t pglayers .

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

    خطوة 4

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

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

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

    الناتج: حاوية تعمل باسم pg

    خطوة 5

    التحقق من التثبيت

    لماذا؟ للتأكد من أن الإضافات متاحة

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

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

    TMP

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

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

    ملف .env نموذجي
    PG_VERSION=16
    EXTENSIONS=pg_stat_statements,postgis,pg_partman
    ملف docker-compose.yml
    version: '3.8'
    services:
      db:
        build: .
        environment:
          POSTGRES_PASSWORD: mysecretpassword
        ports:
          - "5432:5432"
    ERR

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

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

    الخطألماذا يحدث؟التصحيح
    فشل بناء الصورة بسبب تعارض إصدارات الإضافاتبعض الإضافات لا تدعم إصدار PostgreSQL المحددتأكد من توافق الإضافات مع PG_VERSION في .env، أو غيّر الإصدار
    الحاوية لا تبدأمنفذ 5432 مشغولغير المنفذ في docker-compose أو أوقف الخدمة الأخرى
    الإضافة غير متوفرة بعد التشغيللم يتم تضمينها في .envأضف الإضافة إلى EXTENSIONS وأعد البناء
    IF

    شجرة القرار

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

    إذا: إذا كنت بحاجة إلى إضافات PostgreSQL في Docker

    إذن: استخدم Pglayers إذا كنت في بيئة تطوير وتريد حلاً معيارياً

    إذا: إذا كنت في بيئة إنتاج

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

    إذا: إذا واجهت خطأ في البناء

    إذن: تحقق من توافق الإضافات مع إصدار PostgreSQL في .env

    7D

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

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

    1. اليوم 1: استنساخ المستودع وقراءة README
    2. اليوم 2: إنشاء ملف .env وبناء الصورة
    3. اليوم 3: تشغيل الحاوية والتحقق من الإضافات
    4. اليوم 4: اختبار استخدام إضافة (مثل PostGIS)
    5. اليوم 5: إعداد docker-compose
    6. اليوم 6: حل أي أخطاء من Issues المشروع
    7. اليوم 7: توثيق التجربة ومشاركة الملاحظات
    FACT

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

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

    1. Pglayers مشروع مفتوح المصدر بأقل من 100 نجمة على GitHub (يناير 2025).

    2. يدعم PostgreSQL 16 فقط حالياً.

    3. يستخدم Docker layer caching لتسريع البناء.

    4. يمكن تخصيص الإضافات عبر ملف .env.

    5. يتطلب Docker 20.10 أو أحدث.

    6. يُفضل استخدامه في بيئات التطوير فقط.

    7. يوفر حلاً معيارياً مقارنة بـ Dockerfile التقليدي.

    8. يتضمن أمثلة لـ PostGIS وpg_stat_statements وpg_partman.

    9. يمكن استخدامه مع docker-compose بسهولة.

    FAQ

    أسئلة شائعة

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

    هل Pglayers متوافق مع جميع إضافات PostgreSQL؟

    ليس بالضرورة. يعتمد على توافق الإضافة مع إصدار PostgreSQL وطريقة بنائها. راجع قائمة الإضافات المدعومة في مستودع المشروع.

    ما الفرق بين Pglayers وطرق التثبيت التقليدية؟

    Pglayers يفصل الإضافات في طبقات منفصلة، مما يسهل الإدارة وإعادة الاستخدام، ويستفيد من Docker layer caching لتسريع البناء.

    هل يمكن استخدام Pglayers في الإنتاج؟

    المشروع جديد (أقل من 100 نجمة على GitHub)، لذا يُنصح بالاختبار في بيئة تطوير أولاً. لا نوصي باستخدامه في الإنتاج دون اختبار مكثف.

    ABC

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

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

    Pglayers

    مشروع مفتوح المصدر يحول إضافات PostgreSQL إلى طبقات Docker معيارية.

    Docker layer

    طبقة في صورة Docker تمثل مجموعة من التغييرات (مثل تثبيت حزمة).

    pg_stat_statements

    إضافة PostgreSQL لتتبع إحصائيات الاستعلامات.

    PostGIS

    إضافة PostgreSQL للبيانات الجغرافية المكانية.

    pg_partman

    إضافة PostgreSQL لإدارة تقسيم الجداول.

    Q+

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

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

    كيفية تثبيت PostGIS في Dockerإضافات PostgreSQL في DockerPglayers vs Dockerfiledocker-compose PostgreSQL extensionsتثبيت pg_stat_statements في Dockerمشاكل تثبيت إضافات PostgreSQL في Dockerأفضل طريقة لإدارة إضافات PostgreSQL في Docker

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

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

    • DevOps: أتمتة بناء صور Docker باستخدام CI/CD
    • قواعد البيانات: تحسين أداء PostgreSQL باستخدام الإضافات
    • الحوسبة السحابية: نشر تطبيقات معتمدة على PostgreSQL في Kubernetes
    SAVE

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

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

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

    Pglayers يقدم حلاً معيارياً لإدارة إضافات PostgreSQL في Docker، لكنه لا يزال مشروعاً ناشئاً. استخدمه في بيئات التطوير لتجربة الفكرة، وساهم في تحسينه عبر GitHub. مع تطوره، قد يصبح أداة قيّمة لفرق DevOps.

    UPD

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

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

    • تحقق من تحديثات مستودع Pglayers على GitHub شهرياً.
    • تحديث إصدار PostgreSQL المدعوم في .env عند إصدار إصدار جديد.
    • مراجعة قائمة الإضافات المدعومة في README.
    • اختبار التوافق مع الإصدارات الجديدة من Docker.

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

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

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

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

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

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

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

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