Install Discourse for development using Docker

Uguale, si verifica un errore durante il tentativo di creare il profilo utente admin. Funziona dopo aver aggiunto un passaggio a yarn install prima di creare l’admin come suggerito da @zergov. Ho proceduto e creato una PR per aggiungerlo: DEV: Yarn install to avoid error during initial migration seed by dsims · Pull Request #20866 · discourse/discourse · GitHub

Follow-up:
Docker Rootless mode causa gli stessi problemi di mappatura dei permessi su Linux di Docker Desktop. La soluzione temporanea che ho pubblicato funzionerà anche con questa configurazione.

Tuttavia, non sono molto sicuro della soluzione temporanea, quindi sono passato a un’installazione Docker nativa sul mio sistema Linux, ho aggiunto il mio utente non-sudo al gruppo docker e ora i permessi sono mappati correttamente all’interno del container e posso eseguire comandi docker senza sudo.

Grazie @dsims, ho appena unito la PR :raised_hands:

1 Mi Piace

Ottengo questo risultato quando uso podman (provando a eseguire d/boot_dev --init):

Installing gems...
Error response from daemon: environment variable "RAILS_ENV" badly formed, must be key=value

Suppongo che dovrò usare l’approccio dell’ambiente di sviluppo nativo poiché non installerò Docker sul mio desktop Fedora, dato che è stato davvero rotto per anni (con cose casuali come il push che non funziona) e podman funziona molto meglio senza alcun problema (per i progetti che lo supportano).

errore
errore Impossibile scrivere il file “/src/app/assets/javascripts/discourse/yarn-error.log”: “EACCES: permission denied, open ‘/src/app/assets/javascripts/discourse/yarn-error.log’”
errore Si è verificato un errore imprevisto: “EACCES: permission denied, mkdir ‘/src/app/assets/javascripts/node_modules’”.

Perché ricevo questo errore dopo d/boot_dev --init?

3.0" ha una dipendenza peer errata per "@uppy/core@^3.2.1".
[4/4] Costruzione di pacchetti freschi...
$ ../run-patch-package
patch-package 8.0.0
Applicazione delle patch...
@ember/jquery@2.0.0 ✔
babel-plugin-debug-macros@0.3.4 ✔
content-tag@1.1.1 ✔
ember-source@3.28.12 ✔
ember-this-fallback@0.3.1 (1 iniziale) ✔
ember-this-fallback@0.3.1 (2 temi) ✔
virtual-dom@2.1.1 ✔
Completato in 101,54s.
Migrazione del database in corso...
rake aborted!
Discourse::Utils::CommandError: /src/lib/discourse.rb:138:in `exec': node:internal/modules/cjs/loader:1080
  throw err;
  ^

Error: Impossibile trovare il modulo 'esbuild'
Require stack:
- /src/app/assets/javascripts/theme-transpiler/build.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:121:18)
    at Object.<anonymous> (/src/app/assets/javascripts/theme-transpiler/build.js:3:17)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/src/app/assets/javascripts/theme-transpiler/build.js' ]
}

Node.js v18.17.1
/src/lib/discourse.rb:172:in `execute_command'
/src/lib/discourse.rb:138:in `exec'
/src/lib/discourse.rb:34:in `execute_command'
/src/lib/discourse_js_processor.rb:119:in `build_theme_transpiler'
/src/lib/tasks/assets.rake:313:in `block in <main>'
Tasks: TOP => db:migrate => assets:precompile:theme_transpiler
(Vedi la traccia completa eseguendo il task con --trace)

Possibilmente correlato a questo: Install Discourse for development using Docker - #239 by zergov

Forse prova ad andare nella directory /var/www/discourse ed eseguire:

yarn install

Qualcuno ha dei benchmark a riguardo?

Ho cercato in questo argomento ma non ho trovato nulla di specifico. Mi chiedo se qualcuno abbia provato l’installazione normale e quella Docker per confrontarle :slight_smile:

Ecco alcuni suggerimenti per coloro che stanno tentando di utilizzare la procedura descritta in questo argomento:

  1. Il passaggio 1 non ha funzionato per me. Per installare Docker, ho dovuto utilizzare lo “script di convenienza” descritto qui: Ubuntu | Docker Docs

  2. È necessario sudo per tutti i comandi

  3. Sembra mancare un passaggio 3: è necessario creare un account utente amministratore. Per crearne uno nuovo, eseguire il seguente comando: sudo d/rails admin:create

  4. Come indicato nell’argomento, se si utilizza WSL, i collegamenti simbolici al file system di Windows non funzioneranno. Se si tenta comunque, si interromperà l’installazione e si finirà con gemme mancanti. Per recuperare le gemme, eseguire: sudo d/bundle install

2 Mi Piace

Ciao.

Sto cercando di installare lo sviluppo su Debian 12.

Quando eseguo il comando…

d/boot_dev --init

…dopo un po’ viene visualizzato il seguente errore:

$ ../run-patch-package
patch-package 8.0.0
Applying patches...
@ember/jquery@2.0.0 ✔
babel-plugin-debug-macros@0.3.4 ✔
content-tag@1.1.2 ✔
ember-source@3.28.12 ✔
ember-this-fallback@0.4.0 (1 deprecation-name) ✔
ember-this-fallback@0.4.0 (2 themes) ✔
virtual-dom@2.1.1 ✔
Done in 70.39s.
Migrating database...
rake aborted!
Discourse::Utils::CommandError: /src/lib/discourse.rb:138:in `exec': node:internal/modules/cjs/loader:1080
  throw err;
  ^

Error: Cannot find module 'esbuild'
Require stack:
- /src/app/assets/javascripts/theme-transpiler/build.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:121:18)
    at Object.<anonymous> (/src/app/assets/javascripts/theme-transpiler/build.js:3:17)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/src/app/assets/javascripts/theme-transpiler/build.js' ]
}

Node.js v18.17.1
/src/lib/discourse.rb:172:in `execute_command'
/src/lib/discourse.rb:138:in `exec'
/src/lib/discourse.rb:34:in `execute_command'
/src/lib/discourse_js_processor.rb:119:in `build_theme_transpiler'
/src/lib/tasks/assets.rake:313:in `block in <main>'
Tasks: TOP => db:migrate => assets:precompile:theme_transpiler
(See full trace by running task with --trace)

Sto facendo qualcosa di sbagliato?

1 Mi Piace
yarn install # questo reinstalla tutto, incluso esbuild
# rimozione del container precedentemente installato con errore
docker stop discourse_dev
docker rm discourse_dev
d/boot_dev --init
# Verrà richiesto di inserire l'email dell'amministratore in caso di successo.

Ciao. Dopo aver posizionato un symlink nella directory discourse/plugin e poi riavviato:

$ d/rails s

ottengo il seguente errore:

```GitHub - rails/sprockets: Rack-based asset packaging system (at 3.x@f4d3dae) non è ancora stato scaricato. Esegui prima `bundle install````

“Bundle install” non risolve il problema. Ho provato un sacco di cose, ma niente sembra risolverlo. Se rimuovo il symlink nella directory dei plugin e riavvio, tutto funziona di nuovo correttamente. Ho provato con diversi plugin ufficiali che so funzionare su altre installazioni di discourse.

Qualcuno sa perché succede questo?

1 Mi Piace

Puoi provare d/bundle install invece?

1 Mi Piace

Posso eseguire d/bundle install, funziona e posso quindi avviare tutto, ma il plugin non sembra installato in discourse.

Quindi eseguo d/shutdown_dev; d/boot_dev ma dopo che dà di nuovo il vecchio messaggio di errore https://github.com/rails/sprockets (at 3.x@f4d3dae) is not yet checked out. Run `bundle install` first

vOv

Ho migliorato questo in

È decisamente confusionario dover eseguire manualmente d/bundle install ogni volta che si avvia l’ambiente di sviluppo. Nel frattempo, purtroppo dovrai eseguire d/bundle install ogni volta che esegui d/boot_dev.

3 Mi Piace

Continuo a ricevere questo errore.

error Impossibile scrivere il file “/src/app/assets/javascripts/discourse/yarn-error.log”: “EACCES: permission denied, open ‘/src/app/assets/javascripts/discourse/yarn-error.log’”

error Si è verificato un errore imprevisto: “EACCES: permission denied, mkdir ‘/src/app/assets/javascripts/node_modules’”.

hmmm :thinking: Penso che sia lo stesso di qui - non riesco a trovare dove sia stato risolto.

1 Mi Piace

Lo stai eseguendo come utente non root senza sudo?

Era l’utente root.

Sto cercando di installare Discourse Development in una WSL Docker. Sono arrivato alla schermata di congratulazioni, ma senza un account amministratore sono bloccato.

Quando provo a eseguire d/rails admin:create ricevo l’errore stat bin/rails: no such file or directory: unknown.

Cosa mi manca?

Grazie.