مرحبًا ![]()
ما زلت أحاول إنشاء خط أنابيب الخاص بنا ليعمل مع Discourse.
لدي حاوية Redis جديدة وحاوية Postgres جديدة لاستخدامهما مع Discourse.
الخطوة التالية بالنسبة لي هي بناء صورة حاوية web_only ثم ربطها وبدء التثبيت إذا كنت محقًا، لكنني غير قادر على تهيئة الحاوية (bootstrap).
أحصل على هذه الرسالة:
فشل
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 4632 exit 1>
موقع الفشل: /pups/lib/pups/exec_command.rb:112:in `spawn'
فشل التنفيذ مع المعاملات {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
0e576a9672a887d23579100756224f920ab595b819874b5e7cbe4868f4234481
** فشل التهيئة ** يرجى التمرير للأعلى والبحث عن رسائل خطأ سابقة، قد يكون هناك أكثر من خطأ.
قد يساعد ./discourse-doctor في تشخيص المشكلة.
أنا مشوش بشأن سبب محاولة تنفيذ عمليات الترحيل (migrate) بينما لم أبنِ أي شيء بعد. هل أنا أقوم بالخطوات بشكل خاطئ؟
هذا هو ملف web_only.yml الذي أستخدمه (بسيط جدًا):
templates:
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
env:
LANG: en_US.UTF-8
UNICORN_WORKERS: 2
DISCOURSE_DB_USERNAME: root
DISCOURSE_DB_PASSWORD: my-secret-pw
DISCOURSE_DB_HOST: 127.0.0.1
DISCOURSE_DB_NAME: communities
DISCOURSE_DEVELOPER_EMAILS: 'email@mail.com'
DISCOURSE_HOSTNAME: 'localhost'
DISCOURSE_REDIS_HOST: 127.0.0.1
SKIP_POST_DEPLOYMENT_MIGRATIONS: 1
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- mkdir -p plugins
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-solved.git
- git clone https://github.com/discourse/discourse-voting.git
- git clone https://github.com/discourse/discourse-slack-official.git
- git clone https://github.com/discourse/discourse-assign.git
run:
- exec:
cd: /var/www/discourse
cmd:
- sed -i 's/GlobalSetting.serve_static_assets/true/' config/environments/production.rb
- bash -c "touch -a /shared/log/rails/{sidekiq,puma.err,puma}.log"
- bash -c "ln -s /shared/log/rails/{sidekiq,puma.err,puma}.log log/"
- sed -i 's/default \$scheme;/default https;/' /etc/nginx/conf.d/discourse.conf
هل أحتاج إلى وجود حاوية Postgres وحاوية Redis قيد التشغيل في كل مرة أحتاج فيها إلى تهيئة البناء؟ كنت أظن أنني أستطيع تحضير الصور لرفعها بنفسي ثم إعادة تشغيل بيئاتي بها دون الحاجة إلى فعل أي شيء بقاعدة بياناتي…
خط الأنابيب الذي طُلب مني بنائه هو:
- GitHub Actions: يمكنه تهيئة الصورة في حال الحاجة إلى تحديث.
- دفع الصورة إلى سجل خاص (private registry).
- بعد ذلك، يمكن لعملي Kubernetes الحصول على التحديثات ونشرها في بيئاتي، من التطوير إلى الإنتاج.
شكرًا مرة أخرى على كل المساعدة والدعم. ![]()