Discourse mit Docker für die Entwicklung installieren

Meiner Meinung nach sollten diese verwandten Beiträge ein separates Thema bilden, damit sie nicht verloren gehen, falls diese Beiträge automatisch gelöscht werden. Außerdem ist dies für alle von uns, die Plugins entwickeln oder planen, sie zu entwickeln, ein „How-to

1 „Gefällt mir“

Hallo,

ich habe die Anweisungen befolgt, aber die App läuft nicht. Stattdessen erscheint dieser Fehler in der Browserkonsole:
“ReferenceError: Discourse is not defined”
Ich suche nach einer Lösung.
Vielen Dank

1 „Gefällt mir“

Ich betreibe diese Konfiguration nun seit etwa 6 Monaten, aber heute schlägt mein üblicher Docker-Workflow fehl mit der Meldung, dass Discourse keine Verbindung zur Datenbank herstellen kann.

Gibt es ein Problem, das durch das kürzliche Upgrade auf Postgres 13 verursacht wurde?

Nach vielen gescheiterten Versuchen habe ich beschlossen, den Boot-Init-Vorgang neu durchzuführen. Ich habe alle discourse_dev-Container entfernt und folgende Befehle ausgeführt:

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)

Ich habe versucht, als Root in den Container zu wechseln und psql auszuführen, aber das führt zu folgender Meldung:

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"?

Das Postgres innerhalb des Containers wurde tatsächlich aktualisiert.

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

Irgendwelche Hinweise?

1 „Gefällt mir“

Ich bin mir nicht sicher, ob es sich um das gleiche Problem handelt, aber ich hatte ein ähnliches Problem, das auf Berechtigungen für einige Dateien im Container zurückzuführen war, auf die PostgreSQL nicht zugreifen konnte und daher nicht starten konnte. Der Hinweis darauf befand sich in den PostgreSQL-Logs – schau dir diese vielleicht einmal an?

2 „Gefällt mir“

Danke für den Vorschlag, @mentalstring. Seltsamerweise ist das Hauptprotokoll von Postgres /var/log/postgresql/postgresql-13-main.log leer.

Aber es gibt einen Hinweis in einigen der anderen Dateien unter der Struktur /var/log/. Die Datei /var/log/postgres/current ist vollständig mit wiederholten Fehlern wie diesem gefüllt.

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).

Einige gezielte Google-Suchen zeigen, dass das Rohdatenbankformat inkompatibel ist und der Befehl pg_upgrade ausgeführt werden muss.

Ich kann diesen Befehl nicht in PATH finden. Auf jeden Fall zeigt eine weitere Google-Suche, dass Docker-basierte Systeme damit Probleme haben, da sowohl die alte als auch die neue Version von Postgres vorhanden sein müssen, damit es funktioniert.

Einige weitere Fragen für alle, die helfen können:

  • Ist dies ein grundsätzliches Problem bei der Verwendung von Docker in der Entwicklung für dieses Upgrade?
  • Habe ich irgendwie einen Schritt übersehen?
  • Kann ich jetzt konvertieren?
  • Als letztes Mittel: Wie kann ich die aktuellen Daten löschen, damit boot_dev --init die Datenbank neu auf Postgres 13 erstellt?

Vielen Dank im Voraus.

1 „Gefällt mir“

Dieser Teil wird im ersten Beitrag erwähnt:

4 „Gefällt mir“

Ich habe diese Installation auf einem VPS durchgeführt, habe aber Schwierigkeiten, auf das neu installierte Discourse zuzugreifen. Ich habe versucht, über die IP meines VPS gefolgt vom Port 9292 auf Discourse zuzugreifen, ohne Erfolg. Ich vermute, dass der freigegebene Port aufgrund der Docker-Schnittstelle anders ist.

Edit:
Kein Problem, ich habe vergessen, die Ports global in Docker freizugeben.

2 „Gefällt mir“

Ich habe Anfang dieses Jahres eine Entwicklungsumgebung eingerichtet, um ein Plugin zu entwickeln. Jetzt möchte ich sicherstellen, dass das Plugin noch mit der neuesten Version von Discourse funktioniert. Ist es besser, eine neue Entwicklungsumgebung von Grund auf neu zu erstellen (neuer Docker-Container, neue Datenbank usw.), oder ist es einfach, die neueste Version aus einer so alten Build-Umgebung zum Laufen zu bringen? Ich höre von Zeit zu Zeit von Datenbank-Migrationen in Produktionsumgebungen, und das ist es, worüber ich mir am meisten unsicher bin. Wenn ich bei meiner aktuellen Umgebung bleibe, was muss ich tun, nachdem ich aus Git gezogen habe?

1 „Gefällt mir“

bundle install
rake db:migrate

Das sollte es tun

2 „Gefällt mir“

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 „Gefällt mir“

Siehe meinen Beitrag oben.

Das könnte damit zusammenhängen.

Mein Eindruck war, dass mein Problem mit einer Migration auf PostgreSQL 13 zusammenhing, die bei vollständigen Installationen automatisch durchgeführt wird, aber bei Entwicklungsumgebungen nicht ausgeführt wird (eine Annahme).

Siehe meinen Folgebeitrag.

Am Ende habe ich radikal vorgegangen: Die Daten neu erstellt und wiederhergestellt.

1 „Gefällt mir“

Ja, ich habe sowieso keine Daten, die es wert wären, behalten zu werden. Also ist das Löschen aller Daten wahrscheinlich der einfachste Ansatz, falls das funktioniert. Reicht es, einfach erneut sudo rm -fr data und d/boot_dev --init auszuführen, um alles wieder zum Laufen zu bringen? Ich bin mir allerdings nicht sicher, was du mit „wiederhergestellt

1 „Gefällt mir“

Ja, ich hatte Daten, die ich benötigte, habe die Daten also bereinigt und eine WIEDERHERSTELLUNG aus einem Backup durchgeführt.

2 „Gefällt mir“

Ich habe meine Umgebung wieder zum Laufen gebracht, indem ich data gelöscht und neu initialisiert habe. Jetzt kann ich die App einschließlich des Plugins, das ich getestet habe, nutzen. Allerdings erhalte ich einen Fehler, wenn ich Tests gegen mein Plugin und ein anderes Plugin ausführe, um sicherzugehen, dass es nicht nur bei mir liegt. Ich habe dazu einen separaten Beitrag erstellt, bin mir aber nicht sicher, ob dies mit meiner Docker-Konfiguration zusammenhängt, daher wollte ich dies hier ebenfalls veröffentlichen.

2 „Gefällt mir“

Ich verwende Ubuntu WSL 2 unter Windows.

Wenn ich folgendes ausführe:
d/boot_dev --init

passiert nichts. Es wird einfach eine neue Zeile gestartet, ohne Anzeichen einer Ausführung. Eine Idee, was hier los sein könnte? Docker und Git sind installiert.

Vielen Dank.

1 „Gefällt mir“
  1. Du hast Docker innerhalb von WSL 2 und nicht direkt unter Windows installiert, oder?
  2. Aus welchem Verzeichnis führst du den Befehl aus? Es sollte das Hauptverzeichnis des discourse-Repositories sein.
2 „Gefällt mir“

Ja, ich habe Docker sowohl unter Windows als auch in Ubuntu WSL 2 installiert.
Und ich habe den Befehl im Verzeichnis /discourse ausgeführt.
Aber beim Drücken der Eingabetaste passiert nichts.

Es werden weder Fehlerprotokolle noch sonst etwas angezeigt. Es ist daher ziemlich frustrierend zu wissen, wo man anfangen soll.

1 „Gefällt mir“

Hallo zusammen, eine Frage: Wenn ich die One-Click-Installation von Digital Ocean verwende (Discourse | DigitalOcean Marketplace 1-Click App), gilt das dann als Entwicklungsumgebung? Es tut mir im Voraus leid für meine Unwissenheit, aber ich habe Schwierigkeiten zu verstehen, was Produktions- von Entwicklungsumgebungen unterscheidet, und ich möchte mich langsam und stetig in die Entwicklung von Plugins einarbeiten.

Ein paar Punkte: (1) Ich habe einen alten Mac (2012) mit einem alten Betriebssystem (10.12.6), und ich kann nicht manuell über das Terminal alles installieren, was für eine lokale Discourse-Installation benötigt wird – ich muss viel aus dem Quellcode erstellen und stoße schließlich auf ein „make“, das nie endet. (2) Ich habe in der Vergangenheit erfolgreich Discourse-Foren auf One-Click-DO-Droplets erstellt, aber nur für Produktionszwecke – nicht für die Entwicklung.

Jede Art von Hilfe, Anleitung oder Rat wäre sehr willkommen!

1 „Gefällt mir“

Hallo!

Ich habe es geschafft, Discourse unter Windows mit WSL zu installieren.

Von mir erledigte Voraussetzungen:

  • WSL mit Version 2 aktiviert
  • Ich verwende Ubuntu 20.04
  • Deine Distribution eingerichtet :slight_smile: Befolge die gegebenen Anweisungen, und du bist startklar

In der Distribution, unter meinem Home-Ordner /home/cosmin:

  • Docker wie im ersten Beitrag beschrieben installieren. Der Installationsabschnitt für docker.io war für mich nicht notwendig. Ich habe nur sudo usermod -a -G docker $USER ausgeführt.
  • Nach Abschluss der Docker-Installation den Dienst mit sudo docker service start starten und überprüfen.
  • cd discourse
  • d/boot_dev --init ausführen und auf den Abschluss warten.
  • Im Discourse-Ordner d/unicorn ausführen, und du bist startklar.

Hinweis:
Wenn die Befehle Fehler bezüglich Berechtigungen melden, versuche es mit sudo.

Ich hoffe, das hilft dir :slight_smile:
Ich wünsche dir einen schönen Tag oder Abend!
Cosmin

4 „Gefällt mir“

Danke, dass du deinen Setup geteilt hast; ich habe jedoch kein Windows. Mich interessiert speziell die One-Click-Digital-Ocean-Installation – ist sie für die Entwicklung geeignet?

1 „Gefällt mir“