هل صورة Docker discourse/discourse آمنة وجاهزة للإنتاج؟

مرحباً فريق Discourse،

نقوم حاليًا بتقييم صورة Docker المتوفرة هنا: https://hub.docker.com/r/discourse/discourse
تم نشر هذه الصورة مؤخرًا جدًا (قبل أقل من 24 ساعة وقت كتابة هذا التقرير)، ولم أتمكن من العثور على إشارات إليها في الوثائق الرسمية.

سؤالي هو:

  • هل هذه الصورة Docker مدعومة رسميًا ومدارة من قبل فريق Discourse للاستخدام الإنتاجي؟
  • أم أنها صورة تجريبية قد تتم إزالتها أو تغييرها بشكل غير متوقع؟

نريد التأكد مما إذا كان من الآمن الاعتماد على هذه الصورة في بيئات الإنتاج الخاصة بنا.

شكرًا

إعجابَين (2)

أعتقد أن صورة Docker هي https://hub.docker.com/r/discourse/base. (5 مليون+ تنزيل مقابل 800+) انظر:

سيحتوي مستودع Docker دائمًا على أحدث إصدار تم بناؤه على: https://hub.docker.com/r/discourse/base/، لا تحتاج إلى بناء الصورة الأساسية.

إعجابَين (2)

شكراً على ردك، أعرف ذلك. لكنني لم أتمكن من تشغيل صورة discourse/base بسهولة باستخدام Docker Compose. هذه الصورة الجديدة discourse/discourse تجعل الإعداد أبسط بكثير وتعمل بشكل جيد، لكنني أريد أن أفهم الغرض منها وما إذا كان بإمكاني استخدامها في بيئة الإنتاج.

إعجاب واحد (1)

اقرأ:

إعجاب واحد (1)

discourse/discourse جديد، ولكنه لا يزال تجريبيًا، لذا لا أوصي باستخدامه في بيئة الإنتاج. سننشر بالتأكيد المزيد من المعلومات إذا/عندما يتغير ذلك.

حتى الآن، الطريقة الوحيدة التي يمكننا دعمها هي التثبيت القياسي.

11 إعجابًا

كما هو موضح، فإن الطريقة المدعومة للاستضافة الذاتية هي اتباع التثبيت القياسي. إذا كنت لا ترغب في القيام بذلك، فأنت بمفردك تقريبًا. إذا كنت ترغب في التشغيل باستخدام docker-compose، فإن ما أوصي به هو استخدام المشغل لبناء صورتك، ودفعها إلى مستودع خاص بك ثم استخدام ./launcher start-cmd web_only للحصول على متغيرات البيئة اللازمة وما إلى ذلك لتشغيلها. وستظل بحاجة إلى القيام بشيء ما للتأكد من ترحيل قاعدة البيانات، وتجميع الأصول مسبقًا، وما إلى ذلك.

يمكنك أيضًا ابتكار طريقة لجعل GitHub يبني صورًا لك وجعلها تقوم بالترحيل وما إلى ذلك عند تشغيلها (كما سيتم توفيره يومًا ما بواسطة CDCK، على ما يبدو). لقد قمت بذلك للعملاء في الماضي. (يسعدني المساعدة إذا كانت لديك ميزانية.)

إذا كنت تحب العيش على الحافة، فمن المحتمل أن تكون آمنًا جدًا باستخدام الإصدار “التجريبي” مع التنبيه بأنك ستحتاج إلى موقع تجريبي حيث تختبر كل نشر جديد قبل دفعه إلى الإنتاج والاستعداد إما للانتظار لفترة طويلة و/أو القيام بشيء يتطلب معرفة عميقة بـ discourse للمضي قدمًا. أسوأ سيناريو (على الأرجح) هو أنك ستحتاج إلى الاستعداد لعمل نسخة احتياطية واستعادة إلى تثبيت قياسي حتى يصبح الشيء التجريبي جاهزًا للاستخدام العام.

إعجاب واحد (1)

هل لديك تاريخ إصدار تقديري أو جدول زمني لموعد اعتبار discourse/discourse مستقرًا/جاهزًا للإنتاج؟

بالإضافة إلى ذلك، أود التأكيد: هل صورة Docker الخاصة بـ discourse/discourse مفتوحة المصدر، وإذا كان الأمر كذلك، هل يمكنك تقديم رابط مستودع GitHub؟

3 إعجابات

ليس لدي أي جدول زمني/ضمانات في الوقت الحالي. ولكن نأمل أن يكون لدينا المزيد من المعلومات لمشاركتها في الأسابيع القليلة القادمة.

نعم، كل شيء مفتوح المصدر. يتم بناؤه ونشره بانتظام بواسطة سير عمل GitHub هذا: discourse_docker/.github/workflows/push-web-only.yml at main · discourse/discourse_docker · GitHub

7 إعجابات

شكراً على المعلومات وعلى مشاركة رابط GitHub، أقدر ذلك كثيراً!

3 إعجابات

نعم، أصبح الأمر سراً مكشوفاً بشأن ما هو قيد الإعداد :slight_smile:

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

8 إعجابات

@david / @featheredtoast، لقد قمتم أنتما وبقية الفريق بعمل رائع هنا.

لقد انتقلت للتو إلى discourse/discourse من bitnami/discourse للاختبار الآلي وهو يعمل بشكل رائع. من الواضح أن حالة الاستخدام الخاصة بي مثالية - تشغيل منتدى جديد، وتشغيل الاختبارات، وحذفه.

لذلك، أردت فقط أن أقدم شكرًا كبيرًا. أنا متأكد من أن الكثيرين الآخرين سيستفيدون من هذا أيضًا خاصة بمجرد أن يصبح مستقرًا / رسميًا / مدعومًا.

6 إعجابات

وضع مشابه، كنت أبحث عن طريقة سريعة لتشغيل Discourse في إعداد Docker Compose لتسهيل بناء المطورين لتكامل SSO. يبدو أن هذا يعمل بشكل رائع (الإعداد أدناه لمن يهتم):

docker-compose.yml
volumes:
  redis_data: {}
  discourse_data: {}
  discourse_postgres: {}
  discourse_postgres_data: {}

services:
  mailpit:
    image: docker.io/axllent/mailpit:latest
    container_name: mailpit
    ports:
      - '8025:8025'

  redis:
    image: redis:7-alpine
    container_name: redis
    volumes:
      - redis_data:/data
    ports:
      - '6379:6379'
    command: redis-server --appendonly yes

  discourse_db:
    image: discourse/postgres
    container_name: discourse_db
    volumes:
      - discourse_postgres:/var/lib/postgresql
      - discourse_postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB: discourse
      - POSTGRES_USER: admin
      - POSTGRES_PASSWORD: admin_password
      - DB_USER: discourse_user
      - DB_PASSWORD: discourse_user_password

  discourse:
    image: discourse/discourse:3.5.1
    container_name: discourse
    depends_on:
      - discourse_db
      - redis
      - mailpit
    ports:
      - '80:80'
    volumes:
      - discourse_data:/shared
    environment:
      - DISCOURSE_HOSTNAME: localhost
      - DISCOURSE_DEVELOPER_EMAILS: admin@example.com
      - DISCOURSE_DB_HOST: discourse_db
      - DISCOURSE_DB_PORT: 5432
      - DISCOURSE_DB_NAME: discourse
      - DISCOURSE_DB_USERNAME: discourse_user
      - DISCOURSE_DB_PASSWORD: discourse_user_password
      - DISCOURSE_REDIS_HOST: redis
      - DISCOURSE_REDIS_PORT: 6379
      - DISCOURSE_SMTP_ADDRESS: mailpit
      - DISCOURSE_SMTP_PORT: 1025
      - DISCOURSE_SMTP_ENABLE_START_TLS: false
      - DISCOURSE_SMTP_AUTHENTICATION: none
      - LANG: en_US.UTF-8

أتطلع إلى سماع الخطط المستقبلية أو الجداول الزمنية، أود أن أكون قادرًا على تشغيل هذا في شيء مثل Digital Ocean App Platform (شيء يمكن للعملاء إدارته بمعرفة تقنية أقل).

3 إعجابات

شكراً لك على المشاركة، @JackNZ. لم ألاحظ حتى صورة discourse/postgres :sweat_smile: سأضطر إلى إصلاح ذلك. ومع ذلك، سأشارك أين وصلت أيضاً. ربما يكون الأمر الأكثر إثارة للاهتمام هو نص start.sh هنا، والذي سيقوم، على الرغم من حاجته إلى بعض التنظيف، بإنشاء مستخدم مسؤول ومفتاح API وتعطيل محددات المعدل.

إعجابَين (2)