تثبيت Discourse باستخدام Portainer

I use Portainer to manage my Containers. I wanted to install Discourse in a new container but I’m unable to do so. If anyone can help me with this would be appreciated.

WHAT I TRIED?
I read the GitHub File and tried to follow it but I was unable to run console commands as I have not created a container. So I created/cloned an image of Discourse in DockerHub and installed it through Portainer but when I run it says exited with error code 0.

Why is this unsupported install @rishabh? Portainer is just a Docker Control Panel.

Because they only support one installation type, which is in a clean VPS where all the modifications and scripts run without any issue. Anything else is a custom installation and they won’t support it as the ways to use containers is infinite.

To be able to install Discourse, you need to run the bootstrapping done via the launcher utility. If you can add scripts to Portainer it should be relatively easy to do. Or you can just install Discourse in a VPS and push the resulting container to see if that works.

Other way, which could be easier is to decouple everything and deploy them individually, this means (in no way a complete list):

  • PostgreSQL
  • Redis
  • Unicorns
  • Discourse
إعجاب واحد (1)

Yes we have only one official install largely to allow our community to support it well. If we had more, it would be difficult for everyone to provide quality troubleshooting and setup advice.

4 إعجابات

What you’ll need to do is use ./launcher to build your container and then launch it with portainer, passing all of the environment variables needed.

See Can Discourse ship frequent Docker images that do not need to be bootstrapped? for more discussion.

The easy solution that you can get free help with is to follow the official install instructions. If you need help with portainer and have a budget you can ask in marketplace or contact me. I’m not familiar with portainer, but have built containers to launch with other tools.

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

لا أريد أن أبدو جاهلاً، أين توجد أداة المشغل هذه؟ كنت أتصفح المسار /discourse باستخدام صورة Docker التي سحبتها ولم أجد أي نصوص برمجية… مرة أخرى، ربما أنظر إليها بشكل خاطئ؟ هل سأقوم بتشغيل حاوية Docker قياسية من Ubuntu وتكوين كل شيء بنفسي للاختبار كما لو كان تثبيتًا قياسيًا؟

وجدت تعليمات مثل هذه:
الطريقة الموصى بها للحصول على صورة Bitnami Discourse Docker هي سحب الصورة المعدة مسبقًا من سجل Docker Hub.

docker pull bitnami/discourse:latest

لاستخدام إصدار معين، يمكنك سحب علامة إصدار. يمكنك عرض قائمة الإصدارات المتاحة في سجل Docker Hub.

docker pull bitnami/discourse:[TAG]

إذا كنت ترغب في ذلك، يمكنك أيضًا بناء الصورة بنفسك عن طريق استنساخ المستودع، والانتقال إلى الدليل الذي يحتوي على Dockerfile وتنفيذ أمر docker build. تذكر استبدال عناصر نائبة المسار APP و VERSION و OPERATING-SYSTEM في مثال الأمر أدناه بالقيم الصحيحة.

git clone https://github.com/bitnami/containers.git
cd bitnami/APP/VERSION/OPERATING-SYSTEM
docker build -t bitnami/APP:latest .

كيفية استخدام هذه الصورة

يتطلب Discourse الوصول إلى قاعدة بيانات PostgreSQL لتخزين المعلومات. سنستخدم صورة Bitnami Docker لـ PostgreSQL لمتطلبات قاعدة البيانات.

استخدام سطر أوامر Docker

الخطوة 1: إنشاء شبكة

docker network create discourse-network

الخطوة 2: إنشاء وحدة تخزين لاستمرارية PostgreSQL وإنشاء حاوية PostgreSQL

$ docker volume create --name postgresql_data
docker run -d --name postgresql \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env POSTGRESQL_USERNAME=bn_discourse \
  --env POSTGRESQL_PASSWORD=bitnami123 \
  --env POSTGRESQL_DATABASE=bitnami_discourse \
  --network discourse-network \
  --volume postgresql_data:/bitnami/postgresql \
  bitnami/postgresql:latest

الخطوة 3: إنشاء وحدة تخزين لاستمرارية Redis وإنشاء حاوية Redis

$ docker volume create --name redis_data
docker run -d --name redis \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --network discourse-network \
  --volume redis_data:/bitnami/redis \
  bitnami/redis:latest

الخطوة 4: إنشاء وحدات تخزين لاستمرارية Discourse وتشغيل الحاوية

$ docker volume create --name discourse_data
docker run -d --name discourse \
  -p 8080:8080 -p 8443:8443 \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env DISCOURSE_DATABASE_USER=bn_discourse \
  --env DISCOURSE_DATABASE_PASSWORD=bitnami123 \
  --env DISCOURSE_DATABASE_NAME=bitnami_discourse \
  --env DISCOURSE_HOST=www.example.com \
  --network discourse-network \
  --volume discourse_data:/bitnami/discourse \
  bitnami/discourse:latest

الخطوة 5: تشغيل حاوية Sidekiq

docker run -d --name sidekiq \
  --network discourse-network \
  --volume discourse_data:/bitnami/discourse \
  bitnami/discourse:latest /opt/bitnami/scripts/discourse-sidekiq/run.sh

الوصول إلى تطبيقك على http://your-ip/

تشغيل التطبيق باستخدام Docker Compose
curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/discourse/docker-compose.yml > docker-compose.yml
docker-compose up -d

يرجى العلم أن هذا الملف لم يخضع للاختبار الداخلي. وبالتالي، ننصح باستخدامه حصريًا لأغراض التطوير أو الاختبار. لنشر جاهز للإنتاج، نوصي بشدة باستخدام مخطط Helm المرتبط به.

إذا اكتشفت أي مشكلة في ملف docker-compose.yaml، فلا تتردد في الإبلاغ عنها أو المساهمة في إصلاحها باتباع إرشادات المساهمة الخاصة بنا.

استكشاف أخطاء Discourse وإصلاحها

إذا كنت بحاجة إلى تشغيل أوامر إدارة discourse مثل إنشاء حساب مسؤول من وحدة التحكم، فيمكنك القيام بذلك عن طريق تنفيذ shell داخل الحاوية وتشغيلها مع متغيرات البيئة المناسبة.

cd /opt/bitnami/discourse
RAILS_ENV=production bundle exec rake admin:create