I’m an engineer at Compose/IBM and I’m attempting to setup Discourse using our production-ready, replicated databases. I’d like to run a web_only instance with external Redis & PostgreSQL
I also couldn’t find configuration parameters for failover support:
We supply two URIs “portals” for connection failover. I don’t have a ton of time to dig through the Discourse codebase and see which client driver you are using.
Lastly, we use SSL (using valid LE certs) for both Redis and PostgreSQL. Is your app configured for SSL support?
Thanks!
P.S. I’m reaching out personally, not officially from IBM/Compose. I enjoy Discourse and have been considering writing an article on how to configure Discourse using our services:
You can see all of the possible global vars documented at:
You can pass in config from your environment, all the settings below are available.
Append DISCOURSE_ and upper case the setting in ENV. For example:
to pass in db_timeout of 200 you would use DISCOURSE_DB_TIMEOUT=200
أقوم بذلك لتطبيق docker-compose، وعلى الرغم من تصدير متغير البيئة DISCOURSE_REDIS_HOST (كـ redis)، إلا أنه لا يلتزم بهذا المتغير:
name, 'name', name),\n updated_at,\n created_at,\n updated_at\nFROM facebook_user_infos\n")
discourse_1_9cc0cea436ca | rake aborted!
discourse_1_9cc0cea436ca | Redis::CannotConnectError: Error connecting to Redis on localhost:6379 (Errno::ECONNREFUSED)
discourse_1_9cc0cea436ca | /usr/local/bundle/gems/redis-4.0.1/lib/redis/client.rb:344:in `rescue in establish_connection'
كودي الكامل موجود هنا إذا أردت الاطلاع عليه. لسبب ما، المتغيرات (التي يجب أن تُحترم) لا تُحترم. للسياق، أريد حقًا المساعدة في إضافة، لكن عوائق الدخول (إعداد بيئة تطوير أساسية دون تثبيت كل شيء على المضيف!) ضخمة. المرة الوحيدة التي نجحت فيها في تشغيل discourse كانت باستخدام صورة bitnami، وقد قيل لي (في مكان آخر) أنها ليست الطريقة الصحيحة للقيام بذلك. من فضلك ساعدني - لا ينبغي أن يكون هذا صعبًا، خاصة أنني أخصص وقتي المجاني لأنني أريد المساعدة
أقوم بتشغيله مع متغير البيئة production، لكنه لم يُحترم. كحل بديل، قمت بتعديل الإعدادات باستخدام sed، وقد نجح ذلك. لا تزال هناك العديد من المشاكل الأخرى التي أعمل على حلها.
لماذا لا يمكنني تشغيل بيئة إنتاج واستخدامها للتطوير؟ وماذا يفعل sidekiq؟ هل يجب تشغيله بمفرده لبدء التطبيق؟ على سبيل المثال، لدي حاوية أخرى (نفس الأساس) مع أمر بدء:
bundle exec sidekiq
وهو يعتمد على حاوية discourse الرئيسية (نقل قاعدة البيانات، تجميع الملفات الثابتة مسبقًا، إلخ). يبدو أن كل شيء يعمل، لكن لا توجد تطبيق ويب.
يسعدني قضاء وقت أطول في هذا الأمر، بشرط أن لم أبدأ أي شيء بعد، لكنني بحاجة إلى حل لا يتطلب مني تثبيت قاعدة بيانات على مضيفي. باستخدام الحاويات، لا ينبغي أن نضطر إلى فعل ذلك. مرة أخرى، يبدو أن تطبيق Compose هنا GitHub - vsoch/discourse-compose: docker-compose with discourse · GitHub يعمل بشكل صحيح (لا توجد أخطاء في أي سجلات)، ومع ذلك لا توجد أي تطبيق.
حسناً، استسلمت وقمت بتشغيل أمر --init. يمكنني تأكيد أن الحاوية تعمل:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d2254e1374f5 discourse/discourse_dev:release "/sbin/boot" 24 minutes ago Up 24 minutes 0.0.0.0:1080->1080/tcp, 0.0.0.0:3000->3000/tcp, 0.0.0.0:9292->9292/tcp, 0.0.0.0:9405->9405/tcp discourse_dev
لكنني لا أرى أي سجل لها على أي منفذ. جربت متصفحين مختلفين، و localhost، و 127.0.0.1، و 0.0.0.0، ولا توجد أي تطبيق ويب. الخطأ هو ERR_CONNECTION_RESET. لا أرى أي شيء في iptables قد يمنع هذا:
شكراً للجميع على مساعدتكم - كانت المشكلة هي الحاجة إلى إصدار أمر “unicorn”، والآن تعمل كل شيء بشكل صحيح. كما اضطررت أيضاً إلى تشغيل rake admin:create في أمر البدء، وإلا فإنه يطلب تأكيد عبر البريد الإلكتروني (المستودع الكامل هنا). يعمل discourse_dev أيضاً.