Reference OS v8 5 دقائق قراءة ٢ يوليو ٢٠٢٦ informational دليل تركيب إضافات PostgreSQL في Docker باستخدام Pglayers في نهاية هذا الدليل، ستكون قادرًا على تثبيت إضافات PostgreSQL في Docker باستخدام…

Show HN: Pglayers – PostgreSQL extensions as stackable Docker layers
اختر القسم الذي تحتاجه الآن
الفكرة التي تمنع التسرع
تثبيت إضافات PostgreSQL في Docker قد يكون كابوساً: تعارض الإصدارات، Dockerfiles طويلة، وصيانة صعبة. لكن ماذا لو كان بإمكانك تحويل كل إضافة إلى طبقة منفصلة يمكن تكديسها بسهولة؟
قبل أن تطبق، اعرف أين تقف بالضبط
لا تعتمد على الانطباع؛ اختر مؤشراً تراجعه
تثبيت إضافات PostgreSQL في Docker غالباً ما يتطلب تعديل Dockerfile يدوياً أو استخدام صور جاهزة محدودة. Pglayers هو مشروع مفتوح المصدر يهدف إلى حل هذه المشكلة بطريقة معيارية: تحويل كل إضافة إلى طبقة Docker منفصلة يمكن تكديسها فوق الصورة الأساسية. هذا الدليل يشرح كيفية تثبيت Pglayers واستخدامه، مع خطوات قابلة للتنفيذ وأمثلة حقيقية. ملاحظة: المشروع جديد (أقل من 100 نجمة على GitHub وقت كتابة هذا الدليل)، لذا يُنصح باستخدامه في بيئات التطوير أولاً.
Pglayers هو مشروع مفتوح المصدر (متاح على GitHub) يسهل تثبيت إضافات PostgreSQL في Docker. الفكرة الأساسية هي بناء كل إضافة كطبقة Docker منفصلة (layer)، ثم تكديس هذه الطبقات فوق صورة PostgreSQL الأساسية. هذا يسمح بإدارة الإضافات بشكل معياري، وتجنب تعارض الإصدارات، وإعادة استخدام الطبقات عبر مشاريع متعددة.
ملاحظة: هذه الخطوات مبنية على README الفعلي للمستودع (آخر تحديث: يناير 2025). قد تختلف التفاصيل حسب التحديثات المستقبلية.
git clone https://github.com/pglayers/pglayers.gitcd pglayers.env في المجلد الرئيسي بالمحتوى التالي (يمكنك تعديل الإصدار والإضافات حسب حاجتك):PG_VERSION=16
EXTENSIONS=pg_stat_statements,postgis,pg_partman
docker build -t pglayers .docker run --name pg -e POSTGRES_PASSWORD=mysecretpassword -d pglayersdocker exec pg psql -U postgres -c "SELECT * FROM pg_available_extensions;"للاستخدام مع docker-compose، أنشئ ملف docker-compose.yml في نفس المجلد بالمحتوى التالي:
version: '3.8'
services:
db:
build: .
environment:
POSTGRES_PASSWORD: mysecretpassword
ports:
- "5432:5432"
ثم شغّل:docker-compose up -d
في مشاريع التحول الرقمي السعودية، مثل تطبيقات الخرائط أو تحليل المواقع الجغرافية، تحتاج إلى إضافة PostGIS. باستخدام Pglayers، يمكنك ببساطة إضافة 'postgis' إلى متغير EXTENSIONS في ملف .env، ثم إعادة بناء الصورة وتشغيل الحاوية. بعد ذلك، يمكنك التحقق من التثبيت باستخدام الأمر:docker exec pg psql -U postgres -c "CREATE EXTENSION postgis;"
بدلاً من كتابة 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 وبناء الصورة. هذا يوفر الوقت ويجعل الصيانة أسهل.
ليس بالضرورة. يعتمد على توافق الإضافة مع إصدار PostgreSQL وطريقة بنائها. راجع قائمة الإضافات المدعومة في مستودع المشروع.
Pglayers يفصل الإضافات في طبقات منفصلة، مما يسهل الإدارة وإعادة الاستخدام، ويستفيد من Docker layer caching لتسريع البناء.
المشروع جديد (أقل من 100 نجمة على GitHub)، لذا يُنصح بالاختبار في بيئة تطوير أولاً. لا نوصي باستخدامه في الإنتاج دون اختبار مكثف.
خطوات عملية مرتبة من التشخيص إلى النتيجة
لماذا؟ للحصول على ملفات المشروع محليًا
كيف؟ git clone https://github.com/pglayers/pglayers.git && cd pglayers
الناتج: مجلد pglayers يحتوي على Dockerfile وملفات البناء
لماذا؟ لتحديد إصدار PostgreSQL والإضافات المطلوبة
كيف؟ أنشئ ملف .env بالمحتوى: PG_VERSION=16 EXTENSIONS=pg_stat_statements,postgis,pg_partman
الناتج: ملف .env في المجلد الرئيسي
لماذا؟ لبناء صورة Docker تحتوي على الإضافات المحددة
كيف؟ docker build -t pglayers .
الناتج: صورة Docker باسم pglayers
لماذا؟ لتشغيل PostgreSQL مع الإضافات
كيف؟ docker run --name pg -e POSTGRES_PASSWORD=mysecretpassword -d pglayers
الناتج: حاوية تعمل باسم pg
لماذا؟ للتأكد من أن الإضافات متاحة
كيف؟ docker exec pg psql -U postgres -c "SELECT * FROM pg_available_extensions;"
الناتج: قائمة بالإضافات المتاحة تتضمن الإضافات المحددة
حوّل القراءة إلى تنفيذ سريع
PG_VERSION=16 EXTENSIONS=pg_stat_statements,postgis,pg_partman
version: '3.8'
services:
db:
build: .
environment:
POSTGRES_PASSWORD: mysecretpassword
ports:
- "5432:5432"اعرف أين يتعثر الناس وكيف تتجنب ذلك
ماذا تفعل حسب حالتك؟
إذا: إذا كنت بحاجة إلى إضافات PostgreSQL في Docker
إذن: استخدم Pglayers إذا كنت في بيئة تطوير وتريد حلاً معيارياً
إذا: إذا كنت في بيئة إنتاج
إذن: استخدم الصورة الرسمية لـ PostgreSQL مع Dockerfile يدوي أو صور Bitnami
إذا: إذا واجهت خطأ في البناء
إذن: تحقق من توافق الإضافات مع إصدار PostgreSQL في .env
جدول صغير يمنع التسويف
نقاط مختصرة ترجع لها لاحقاً
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 بسهولة.
إجابات مباشرة على ما يبحث عنه الزائر
تعريفات مختصرة تمنع الالتباس
مشروع مفتوح المصدر يحول إضافات PostgreSQL إلى طبقات Docker معيارية.
طبقة في صورة Docker تمثل مجموعة من التغييرات (مثل تثبيت حزمة).
إضافة PostgreSQL لتتبع إحصائيات الاستعلامات.
إضافة PostgreSQL للبيانات الجغرافية المكانية.
إضافة PostgreSQL لإدارة تقسيم الجداول.
استخدمها كمسارات متابعة داخل نفس الموضوع
تحول القارئ: من مطور يجد صعوبة في إدارة إضافات PostgreSQL في Docker إلى مطور يستخدم أداة معيارية لتكديس الإضافات بسهولة.
القيمة الحقيقية تظهر عند العودة والتطبيق
لا تتعامل معه كمقال يُقرأ مرة واحدة. استخدمه كلوحة تشغيل: ارجع للتشخيص عند ظهور المشكلة، وللقوالب عند التطبيق، ولمؤشرات القياس عند المراجعة.
Pglayers يقدم حلاً معيارياً لإدارة إضافات PostgreSQL في Docker، لكنه لا يزال مشروعاً ناشئاً. استخدمه في بيئات التطوير لتجربة الفكرة، وساهم في تحسينه عبر GitHub. مع تطوره، قد يصبح أداة قيّمة لفرق DevOps.
حتى يبقى المرجع صالحاً مع الوقت
FAQ
استمر في القراءة