تثبيت Discourse للتطوير باستخدام Docker

في رأيي، يجب أن تكون هذه المنشورات ذات الصلة موضوعًا منفصلًا حتى لا تضيع إذا تم حذف هذه المنشورات تلقائيًا، ولكن أيضًا لأن أولئك منا الذين يطورون أو يخططون لتطوير مكونات إضافية، هذا موضوع كيفية (يجب معرفته).

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

مرحبًا،

لقد اتبعت التعليمات، لكن التطبيق لا يعمل، بل يعرض هذا الخطأ في وحدة تحكم المتصفح:
“ReferenceError: Discourse is not defined”
أبحث عن حل.
شكرًا لك

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

لقد كنت أعمل بهذه التكوين لمدة 6 أشهر تقريبًا، لكن اليوم فشل سير العمل المعتاد لدي في Docker مع رسالة تفيد بأن Discourse لا يمكنه الاتصال بقاعدة البيانات.

هل هناك مشكلة ناتجة عن ترقية Postgres 13 الأخيرة؟

بعد العديد من المحاولات الفاشلة، قررت إعادة تشغيل التهيئة الأولية. لقد أزلت جميع حاويات discourse_dev وقمت بتشغيل:

bletch@BletchUbuntu:~/RubymineProjects/discourse$ git pull
Already up-to-date.
bletch@BletchUbuntu:~/RubymineProjects/discourse$ rm -rf tmp/*
bletch@BletchUbuntu:~/RubymineProjects/discourse$ sudo d/boot_dev --init
Using script path: /home/bletch/RubymineProjects/discourse/bin/docker
Using source in:   /home/bletch/RubymineProjects/discourse
Using data in:     /home/bletch/RubymineProjects/discourse/data/postgres
Mounting symlinks for plugins:  -v /home/bletch/RubymineProjects/plugin_dev/discourse-onebox-assistant:/src/plugins/discourse-onebox-assistant:delegated -v /home/bletch/RubymineProjects/plugin_dev/school-points:/src/plugins/school-points:delegated -v /home/bletch/RubymineProjects/plugin_dev/discourse-custom-wizard:/src/plugins/discourse-custom-wizard:delegated
mount_plugin_symlinks=:  -v /home/bletch/RubymineProjects/plugin_dev/discourse-onebox-assistant:/src/plugins/discourse-onebox-assistant:delegated -v /home/bletch/RubymineProjects/plugin_dev/school-points:/src/plugins/school-points:delegated -v /home/bletch/RubymineProjects/plugin_dev/discourse-custom-wizard:/src/plugins/discourse-custom-wizard:delegated
release: Pulling from discourse/discourse_dev
Digest: sha256:0a9e857b7a225660463a47446fb28d6f8b92b0fc559310723300d59a950d9563
Status: Image is up to date for discourse/discourse_dev:release
docker.io/discourse/discourse_dev:release
d19dec96649b15cd03af4a3f68f3f8f97ec67d06caf274bef301b03c9e7548d9
Installing gems...
Fetching gem metadata from https://rubygems.org/.........
Using rake 13.0.1
...
[LOTS OF GEM DETAILS]
...
Bundle complete! 123 Gemfile dependencies, 209 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
Migrating database...
rake aborted!
PG::ConnectionBad: could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
/src/lib/site_settings/db_provider.rb:61:in `table_exists?'
/src/lib/site_settings/db_provider.rb:16:in `all'
/src/lib/site_settings/defaults_provider.rb:29:in `db_all'
/src/lib/site_setting_extension.rb:290:in `block in refresh!'
/src/lib/site_setting_extension.rb:287:in `synchronize'
/src/lib/site_setting_extension.rb:287:in `refresh!'
/src/lib/site_setting_extension.rb:522:in `block in setup_methods'
/src/config/initializers/004-message_bus.rb:120:in `<main>'
/src/config/environment.rb:7:in `<main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)

لقد حاولت الدخول إلى الحاوية بصلاحيات root وتشغيل psql لكن النتيجة كانت:

root@discourse:/# psql 
psql: error: could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

تم بالفعل تحديث Postgres داخل الحاوية.

root@discourse:/# psql -V
psql (PostgreSQL) 13.1 (Debian 13.1-1.pgdg100+1)

هل هناك أي تلميحات؟

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

لا أضمن ما إذا كانت المشكلة نفسها، لكن واجهتُ مشكلة مشابهة ناتجة عن صلاحيات بعض الملفات داخل الحاوية التي لم يستطع PostgreSQL الوصول إليها، وبالتالي لم يتمكن من البدء. الدليل على ذلك موجود في سجلات PostgreSQL — ربما تفقدها؟

إعجابَين (2)

شكرًا على الاقتراح @mentalstring. من الغريب أن سجل Postgres الرئيسي /var/log/postgresql/postgresql-13-main.log فارغ.

لكن هناك دليلًا في بعض الملفات الأخرى داخل هيكلية /var/log/. الملف /var/log/postgres/current ممتلئ تمامًا بأخطاء متكررة مثل هذا:

2020-12-11 20:06:34.875 UTC [11680] FATAL:  database files are incompatible with server
2020-12-11 20:06:34.875 UTC [11680] DETAIL:  The data directory was initialized by PostgreSQL version 12, which is not compatible with this version 13.1 (Debian 13.1-1.pgdg1
00+1).

بعض البحث الدقيق على Google يكشف أن تنسيق قاعدة البيانات الخام غير متوافق، ويجب تشغيل أمر pg_upgrade.

لا أستطيع رؤية هذا الأمر في PATH. على أي حال، بحث إضافي على Google يكشف أن الأنظمة المعتمدة على Docker تواجه صعوبة في ذلك، حيث يجب أن تكون الإصدارات القديمة والجديدة من Postgres موجودة معًا لتعمل العملية.

بعض الأسئلة الإضافية لأي شخص يمكنه المساعدة:

  • هل هذه مشكلة جوهرية في استخدام Docker في التطوير لهذا التحديث؟
  • هل فاتني خطوة ما بطريقة ما؟
  • هل يمكنني التحويل الآن؟
  • كحل أخير، كيف يمكنني حذف البيانات الحالية بحيث يعيد boot_dev --init إنشاء قاعدة البيانات على Postgres 13؟

شكرًا مقدّمًا.

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

تم ذكر هذه النقطة في المنشور الأول:

4 إعجابات

لقد اتبعت هذه التثبيت على خادم VPS، لكنني أواجه صعوبة في الوصول إلى Discourse الذي تم تثبيته حديثًا. لقد حاولت الوصول إلى Discourse من عنوان IP الخاص بخادم VPS متبوعًا بالمنفذ 9292 دون جدوى. أعتقد أن المنفذ المعروض مختلف بسبب واجهة Docker.

تعديل:
لا بأس، لقد نسيت عرض المنافذ عالميًا على Docker.

إعجابَين (2)

أنشأت بيئة تطوير في بداية هذا العام لبناء إضافة. الآن أريد التأكد من أن الإضافة تعمل بشكل صحيح على أحدث إصدار من Discourse. هل من الأفضل إنشاء بيئة تطوير جديدة من الصفر (حاوية Docker جديدة، قاعدة بيانات جديدة، وما إلى ذلك)، أم أن تحديث الإصدار الأقدم إلى أحدث إصدار أمر بسيط؟ أسمع بين الحين والآخر عن هجرات قواعد البيانات في بيئات الإنتاج، وهذا ما يجعلني أكثر حيرة. إذا التزمت ببيئتي الحالية، وبعد سحب التحديث من git، ما هي الخطوات التي يجب أن أتبعها؟

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

قم بتشغيل:
bundle install
rake db:migrate

يجب أن يحل المشكلة

إعجابَين (2)

I’m not able to get this working. I pulled the latest from the master branch, and then here’s what I did:

  1. d/boot_dev (works)
  2. d/bundle install (works)
  3. d/rails db:migrate RAILS_ENV=development as indicated in the OP, or d/rake db:migrate as you recommended (neither of them work)

Here’s the error I get for one of them (the other is basically the same):

rails aborted!
PG::ConnectionBad: could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
/src/lib/site_settings/db_provider.rb:61:in `table_exists?'
/src/lib/site_settings/db_provider.rb:16:in `all'
/src/lib/site_settings/defaults_provider.rb:29:in `db_all'
/src/lib/site_setting_extension.rb:290:in `block in refresh!'
/src/lib/site_setting_extension.rb:287:in `synchronize'
/src/lib/site_setting_extension.rb:287:in `refresh!'
/src/lib/site_setting_extension.rb:522:in `block in setup_methods'
/src/config/initializers/004-message_bus.rb:120:in `<main>'
/src/config/environment.rb:7:in `<main>'
bin/rails:17:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment

And here’s the full trace if I add --trace as the error message recommends:

Full trace
** Invoke db:migrate (first_time)
** Invoke db:load_config (first_time)
** Invoke environment (first_time)
** Execute environment
rails aborted!
PG::ConnectionBad: could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
/usr/local/lib/ruby/gems/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `initialize'
/usr/local/lib/ruby/gems/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `new'
/usr/local/lib/ruby/gems/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `connect'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql_adapter.rb:46:in `postgresql_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:887:in `new_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:931:in `checkout_new_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:910:in `try_to_checkout_new_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:871:in `acquire_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:593:in `checkout'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:437:in `connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1119:in `retrieve_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_handling.rb:221:in `retrieve_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_handling.rb:189:in `connection'
/src/lib/site_settings/db_provider.rb:61:in `table_exists?'
/src/lib/site_settings/db_provider.rb:16:in `all'
/src/lib/site_settings/defaults_provider.rb:29:in `db_all'
/src/lib/site_setting_extension.rb:290:in `block in refresh!'
/src/lib/site_setting_extension.rb:287:in `synchronize'
/src/lib/site_setting_extension.rb:287:in `refresh!'
/src/lib/site_setting_extension.rb:522:in `block in setup_methods'
/src/config/initializers/004-message_bus.rb:120:in `<main>'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:318:in `block in load'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:318:in `load'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/engine.rb:666:in `block in load_config_initializer'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/notifications.rb:182:in `instrument'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/engine.rb:665:in `load_config_initializer'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/engine.rb:625:in `block (2 levels) in <class:Engine>'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/engine.rb:624:in `each'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/engine.rb:624:in `block in <class:Engine>'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:32:in `instance_exec'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:32:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:61:in `block in run_initializers'
/usr/local/lib/ruby/2.7.0/tsort.rb:228:in `block in tsort_each'
/usr/local/lib/ruby/2.7.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
/usr/local/lib/ruby/2.7.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
/usr/local/lib/ruby/2.7.0/tsort.rb:431:in `each_strongly_connected_component_from'
/usr/local/lib/ruby/2.7.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:50:in `each'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:50:in `tsort_each_child'
/usr/local/lib/ruby/2.7.0/tsort.rb:415:in `call'
/usr/local/lib/ruby/2.7.0/tsort.rb:415:in `each_strongly_connected_component_from'
/usr/local/lib/ruby/2.7.0/tsort.rb:349:in `block in each_strongly_connected_component'
/usr/local/lib/ruby/2.7.0/tsort.rb:347:in `each'
/usr/local/lib/ruby/2.7.0/tsort.rb:347:in `call'
/usr/local/lib/ruby/2.7.0/tsort.rb:347:in `each_strongly_connected_component'
/usr/local/lib/ruby/2.7.0/tsort.rb:226:in `tsort_each'
/usr/local/lib/ruby/2.7.0/tsort.rb:205:in `tsort_each'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:60:in `run_initializers'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/application.rb:363:in `initialize!'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/railtie.rb:190:in `public_send'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/railtie.rb:190:in `method_missing'
/src/config/environment.rb:7:in `<main>'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/usr/local/lib/ruby/gems/2.7.0/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:34:in `require'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `block in require'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/application.rb:339:in `require_environment!'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/application.rb:523:in `block in run_tasks_blocks'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `block in execute'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `each'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `execute'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `synchronize'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:243:in `block in invoke_prerequisites'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:241:in `each'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:241:in `invoke_prerequisites'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:218:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `synchronize'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:243:in `block in invoke_prerequisites'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:241:in `each'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:241:in `invoke_prerequisites'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:218:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `synchronize'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:188:in `invoke'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:160:in `invoke_task'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `each'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block in top_level'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:125:in `run_with_threads'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:110:in `top_level'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/commands/rake/rake_command.rb:23:in `block in perform'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:186:in `standard_exception_handling'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/commands/rake/rake_command.rb:20:in `perform'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/command.rb:48:in `invoke'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/commands.rb:18:in `<main>'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `block in require'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
bin/rails:17:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment

Besides it sounding like it can’t connect to the database, I have no idea what any of this means. I don’t even know how to tell if a database migration is even necessary, other than me assuming it is from chatter on the forums over the last year.

Once this failed I figured I’d try just running d/unicorn in case the database migration wasn’t relevant, but that also failed with the following error at the end:

7: from /usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:871:in `acquire_connection'
	 6: from /usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:910:in `try_to_checkout_new_connection'
	 5: from /usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:931:in `checkout_new_connection'
	 4: from /usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:887:in `new_connection'
	 3: from /usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql_adapter.rb:46:in `postgresql_connection'
	 2: from /usr/local/lib/ruby/gems/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `connect'
	 1: from /usr/local/lib/ruby/gems/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `new'
/usr/local/lib/ruby/gems/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `initialize': could not connect to server: No such file or directory (PG::ConnectionBad)
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

So it seems to be the same issue effectively. Any suggestions for how to fix this connection issue or anything else that you may notice being wrong based on the traces?

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

شاهد منشوري أعلاه.

قد يكون الأمر مرتبطًا.

كان شعوري بأن مشكلتي مرتبطة بالانتقال إلى Postgres 13 الذي يتم أتمتته في التثبيتات الكاملة لكنه لا يُنفَّذ في بيئة التطوير. (وهذا افتراض).

شاهد منشوري اللاحق.

في النهاية، لجأت إلى الحل الجذري: أعيدت إنشاء البيانات واستعادتها.

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

نعم، لا أملك فعليًا أي بيانات تستحق الاحتفاظ بها. لذا، فإن مسح جميع البيانات هو على الأرجح أبسط نهج إذا كان سيعمل. هل كان مجرد تشغيل أمر sudo rm -fr data ثم d/boot_dev --init مرة أخرى كافيًا لإعادة الأمور إلى العمل؟ غير متأكد مما تقصده بـ “استُعيدت”، لذا لو تفضلت توضيح هذا الجزء.

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

نعم، كان لدي بيانات أحتاجها، لذا قمت بمسح البيانات وأجريت عملية استعادة (RESTORE) من النسخة الاحتياطية.

إعجابَين (2)

تمكنت من إعادة تشغيل بيئتي بنجاح عن طريق حذف data وإعادة التهيئة، لذا يمكنني الآن استخدام التطبيق بما في ذلك الإضافة التي كنت أختبرها. ومع ذلك، أواجه خطأً عند تشغيل الاختبارات على إضافتي وعلى إضافة أخرى جربت التأكد من أن المشكلة ليست خاصة بي فقط. لقد نشرت موضوعًا منفصلًا بشأن ذلك، لكنني لست متأكدًا مما إذا كانت المشكلة مرتبطة بإعدادات Docker الخاصة بي، لذا أردت نشرها هنا أيضًا.

إعجابَين (2)

أنا أستخدم Ubuntu WSL 2 على نظام Windows.

عند تشغيل الأمر:
d/boot_dev --init

لا يحدث شيء. يظهر سطر جديد فقط دون أي علامات تنفيذ. هل لديك فكرة عما يحدث هنا؟ تم تثبيت Docker و git.

شكرًا لك.

إعجاب واحد (1)
  1. هل قمت بتثبيت Docker داخل WSL 2 وليس على نظام Windows نفسه، صحيح؟
  2. من أي دليل تقوم بتشغيل الأمر؟ يجب أن يكون من الدليل الرئيسي في مستودع discourse.
إعجابَين (2)

نعم، قمت بتثبيت Docker على نظام Windows وكذلك داخل Ubuntu WSL 2.
وقمت بتشغيل الأمر من دليل /discourse.
لكن لا يظهر أي شيء عند الضغط على Enter.

لا توجد حتى سجلات أخطاء أو أي شيء آخر. لذا، من المحبط للغاية معرفة من أين نبدأ.

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

مرحباً بالجميع، سؤال: إذا استخدمت التثبيت بضغطة زر من Digital Ocean (Discourse | DigitalOcean Marketplace 1-Click App)، فهل يُعتبر ذلك بيئة تطوير؟ آسف مقدماً على جهلي، لكنني أواجه صعوبة في فهم ما يفرق بين بيئة الإنتاج وبيئة التطوير، وأود أن أبدأ رحلة طويلة وبطيئة لتعلم تطوير الإضافات.

بعض النقاط: (1) لدي ماك قديم (2012) مع نظام تشغيل قديم (10.12.6)، ولا يمكنني التثبيت يدوياً عبر الطرفية كل ما هو مطلوب لتثبيت Discourse محلياً — يجب أن أبني الكثير من المصدر، وفي النهاية أواجه أمر “make” لا ينتهي، و(2) لقد نجحت سابقاً في إنشاء منتديات Discourse على قطرات DO بضغطة زر، لكن فقط للإنتاج وليس للتطوير.

أي مساعدة أو إرشاد أو نصيحة تُقدّر كثيراً!

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

مرحبًا!

تمكنت من تثبيت Discourse على نظام Windows باستخدام WSL.

المتطلبات الأساسية التي قمت بها:

  • تفعيل WSL بالإصدار 2
  • أنا أستخدم Ubuntu 20.04
  • قم بإعداد توزيعتك :slight_smile: اتبع التعليمات المعطاة وستكون جاهزًا للانطلاق

داخل التوزيع، تحت مجلد المنزل الخاص بي، /home/cosmin:

  • قم بتثبيت Docker حسب التعليمات في المنشور الأول. لم يكن جزء تثبيت docker.io ضروريًا بالنسبة لي. لقد نفذت فقط الأمر sudo usermod -a -G docker $USER
  • بعد اكتمال تثبيت Docker، ابدأ الخدمة باستخدام sudo docker service start ثم تحقق منها
  • cd discourse
  • شغّل d/boot_dev --init وانتظر حتى ينتهي
  • في مجلد discourse، شغّل d/unicorn وستكون جاهزًا للانطلاق

ملاحظة:
إذا أبلغت الأوامر عن أخطاء تتعلق بالأذونات، جرب استخدام sudo

آمل أن يكون هذا مفيدًا :slight_smile:
أتمنى لكم يومًا أو مساءً سعيدًا!
Cosmin

4 إعجابات

شكرًا لمشاركة إعدادك؛ ومع ذلك، لا أستخدم نظام ويندوز. أنا مهتم تحديدًا بإعداد Digital Ocean بنقرة واحدة — هل هو مناسب للتطوير؟

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