Install Discourse for development using Docker

Gracias por el informe @Aubrey @topological y @FlyingCat. Ahora hemos revertido ese commit en Discourse core.

@cvx identificó la causa del problema y abrió un problema en el mail gem upstream:

Una vez que se resuelva, volveremos a cambiar al gem oficial.

6 Me gusta

Tengo un error diferente en d/boot_dev --init. Esto es en una instalación nueva de Ubuntu 22.04 y siguiendo la guía en el OP

EDITAR: Solucionado – realmente no le gusta ejecutarse como root. Asegúrate de ser un usuario normal desde el principio.

# d/boot_dev --init
Usando fuente en: /root/dev/discourse
Usando datos en:   /root/dev/discourse/data/postgres
release: Extrayendo de discourse/discourse_dev
214ca5fb9032: Extracción completa
37cd9d4cd9e6: Extracción completa
9b38588fc778: Extracción completa
cb13139046fe: Extracción completa
1243de3fe752: Extracción completa
ec3e5331f9b3: Extracción completa
0fab0821518d: Extracción completa
9b5e686bba91: Extracción completa
428573951790: Extracción completa
38013f421bac: Extracción completa
733b166992df: Extracción completa
1fb3d7e57e63: Extracción completa
f76a1270a527: Extracción completa
133993b18ebe: Extracción completa
226b3b82cab1: Extracción completa
Digest: sha256:0a08c79cd8997e3bfac037625f2f5b2f26a64564113116b8c18969484b00a8ce
Status: Imagen más nueva descargada para discourse/discourse_dev:release
docker.io/discourse/discourse_dev:release
439f53088cc4aab844a8864b779056a576c731ba4723d4cf8b23d0e97c8ae79c
Instalando gems...
^TLos siguientes archivos pueden no ser escribibles, por lo que se necesita sudo:
  /usr/local/bin
  /usr/local/lib/ruby/gems/2.7.0
  /usr/local/lib/ruby/gems/2.7.0/build_info
  /usr/local/lib/ruby/gems/2.7.0/cache
  /usr/local/lib/ruby/gems/2.7.0/doc
  /usr/local/lib/ruby/gems/2.7.0/extensions
  /usr/local/lib/ruby/gems/2.7.0/gems
  /usr/local/lib/ruby/gems/2.7.0/plugins
  /usr/local/lib/ruby/gems/2.7.0/specifications
Usando rake 13.0.6
Usando concurrent-ruby 1.1.10
Usando i18n 1.10.0
Usando minitest 5.15.0
Usando tzinfo 2.0.4
Usando activesupport 7.0.3
Usando builder 3.2.4
Usando erubi 1.10.0
Usando racc 1.6.0
Usando nokogiri 1.13.6 (x86_64-linux)
Usando rails-dom-testing 2.0.3
Usando crass 1.0.6
Usando loofah 2.18.0
Usando rails-html-sanitizer 1.4.2
Usando actionview 7.0.3
Usando rack 2.2.3
Usando rack-test 1.1.0
Usando actionpack 7.0.3
Usando globalid 1.0.0
Usando activejob 7.0.3
Usando mini_mime 1.1.2
Usando mail 2.8.0.edge desde https://github.com/discourse/mail.git
Usando digest 3.1.0
Usando timeout 0.2.0
Usando net-protocol 0.1.3
Usando strscan 3.0.3
Usando net-imap 0.2.3
Usando net-pop 0.1.1
Usando net-smtp 0.3.1
Usando actionmailer 7.0.3
Usando actionview_precompiler 0.2.3
Usando activemodel 7.0.3
Usando active_model_serializers 0.8.4
Usando activerecord 7.0.3
Usando public_suffix 4.0.7
Usando addressable 2.8.0
Usando annotate 3.2.0
Usando ast 2.4.2
Usando aws-eventstream 1.2.0
Usando aws-partitions 1.583.0
Usando aws-sigv4 1.5.0
Usando jmespath 1.6.1
Usando aws-sdk-core 3.130.2
Usando aws-sdk-kms 1.56.0
Usando aws-sdk-s3 1.114.0
Usando aws-sdk-sns 1.53.0
Usando ember-source 2.18.2
Usando execjs 2.8.1
Usando barber 0.12.2
Usando coderay 1.1.3
Usando better_errors 2.9.1
Usando debug_inspector 1.1.0
Usando binding_of_caller 1.0.0
Usando msgpack 1.5.1
Usando bootsnap 1.11.1
Usando uniform_notifier 1.16.0
Usando bullet 7.0.1
Usando bundler 2.3.13
Usando byebug 11.1.3
Usando cbor 0.5.9.6
Usando certified 1.0.0
Usando chunky_png 1.4.0
Usando colored2 3.1.2
Usando connection_pool 2.2.5
Usando ipaddr 1.2.4
Usando openssl 2.2.1
Usando openssl-signature_algorithm 1.1.1
Usando cose 1.2.0
Usando cppjieba_rb 0.4.2
Usando rexml 3.2.5
Usando crack 0.4.5
Usando css_parser 1.11.0
Usando diff-lcs 1.5.0
Usando diffy 3.4.0
Usando ember-data-source 3.0.2
Usando sprockets 3.7.2
Usando ember-handlebars-template 0.8.0
Usando method_source 1.0.0
Usando thor 1.2.1
Usando zeitwerk 2.5.4
Usando railties 7.0.3
Usando jquery-rails 4.4.0
Usando discourse-ember-rails 0.18.6
Usando discourse-ember-source 3.12.2.3
Usando discourse-fonts 0.0.9
Usando faker 2.21.0
Usando literate_randomizer 0.4.0
Usando discourse_dev_assets 0.0.4
Usando docile 1.4.0
Usando regexp_parser 2.4.0
Usando ecma-re-validator 0.4.0
Usando email_reply_trimmer 0.1.13
Usando excon 0.92.3
Usando exifr 1.3.9
Usando fabrication 2.28.0
Usando fakeweb 1.3.0
Usando faraday-em_http 1.0.0
Usando faraday-em_synchrony 1.0.0
Usando faraday-excon 1.1.0
Usando faraday-httpclient 1.0.1
Usando multipart-post 2.1.1
Usando faraday-multipart 1.0.3
Usando faraday-net_http 1.0.1
Usando faraday-net_http_persistent 1.2.0
Usando faraday-patron 1.0.0
Usando faraday-rack 1.0.0
Usando faraday-retry 1.0.3
Usando ruby2_keywords 0.0.5
Usando faraday 1.10.0
Usando fast_blank 1.0.1
Usando fast_xs 0.8.0
Usando fastimage 2.2.6
Usando ffi 1.15.5
Usando fspath 3.1.2
Usando gc_tracer 1.5.1
Usando guess_html_encoding 0.0.11
Usando hana 1.3.7
Usando hashdiff 1.0.1
Usando hashie 5.0.0
Usando highline 2.0.3
Usando hkdf 0.3.0
Usando htmlentities 4.3.4
Usando http_accept_language 2.1.1
Usando image_size 3.0.1
Usando in_threads 1.6.0
Usando progress 3.6.0
Usando image_optim 0.31.1
Usando json 2.6.1
Usando json-schema 2.8.1
Usando uri_template 0.7.0
Usando json_schemer 0.2.21
Usando jwt 2.3.0
Usando kgio 2.11.4
Usando libv8-node 16.10.0.0 (x86_64-linux)
Usando rb-fsevent 0.11.1
Usando rb-inotify 0.10.1
Usando listen 3.7.1
Usando request_store 1.5.1
Usando lograge 0.12.0
Usando logstash-event 1.2.02
Usando logstash-logger 0.26.1
Usando logster 2.11.2
Usando lru_redux 1.1.0
Usando lz4-ruby 0.3.3
Usando maxminddb 0.1.22
Usando memory_profiler 1.0.0
Usando message_bus 4.2.0
Usando mini_racer 0.6.2
Usando redis 4.5.1
Usando sidekiq 6.4.2
Usando mini_scheduler 0.13.0
Usando mini_sql 1.4.0
Usando mini_suffix 0.3.3
Usando mocha 1.14.0
Usando multi_json 1.15.0
Usando multi_xml 0.6.0
Usando mustache 1.1.1
Usando uri 0.11.0
Usando net-http 0.2.2
Usando nio4r 2.5.8
Usando oauth 0.5.10
Usando oauth2 1.4.7
Usando oj 3.13.11
Usando omniauth 1.9.1
Usando omniauth-oauth2 1.7.2
Usando omniauth-facebook 9.0.0
Usando omniauth-github 1.4.0
Usando omniauth-google-oauth2 0.8.2
Usando omniauth-oauth 1.2.0
Usando omniauth-twitter 1.4.0
Usando optimist 3.0.1
Usando parallel 1.22.1
Usando parallel_tests 3.8.1
Usando parser 3.1.2.0
Usando pg 1.3.5
Usando pry 0.13.1
Usando pry-byebug 3.9.0
Usando pry-rails 0.3.9
Usando puma 5.6.4
Usando r2 0.2.7
Usando rack-mini-profiler 3.0.0
Usando rack-protection 2.2.0
Usando rails_failover 0.8.1
Usando rails_multisite 4.0.1
Usando rainbow 3.1.1
Usando raindrops 0.20.0
Usando rbtrace 0.4.14
Usando rchardet 1.8.0
Usando redis-namespace 1.8.2
Usando rinku 2.0.6
Usando rotp 6.2.0
Usando rqrcode_core 1.2.0
Usando rqrcode 2.1.1
Usando rspec-support 3.11.0
Usando rspec-core 3.11.0
Usando rspec-expectations 3.11.0
Usando rspec-mocks 3.11.1
Usando rspec 3.11.0
Usando rspec-html-matchers 0.9.4
Usando rspec-rails 5.1.2
Usando rss 0.2.9
Usando rswag-specs 2.5.1
Usando rubocop-ast 1.18.0
Usando ruby-progressbar 1.11.0
Usando unicode-display_width 2.1.0
Usando rubocop 1.29.1
Usando rubocop-rspec 2.10.0
Usando rubocop-discourse 2.5.0
Usando ruby-prof 1.4.3
Usando ruby-readability 0.7.0
Usando rubyzip 2.3.2
Usando sanitize 6.0.0
Usando sassc 2.0.1
Usando sprockets-rails 3.4.2
Usando tilt 2.0.10
Usando sassc-rails 2.1.2
Usando seed-fu 2.3.9
Usando shoulda-matchers 5.1.0
Usando simplecov-html 0.12.3
Usando simplecov_json_formatter 0.1.4
Usando simplecov 0.21.2
Usando sshkey 2.0.0
Usando stackprof 0.2.19
Usando test-prof 1.0.9
Usando uglifier 4.2.0
Usando unf_ext 0.0.8.1
Usando unf 0.1.4
Usando unicorn 6.1.0
Usando webmock 3.14.0
Usando webpush 1.1.0
Usando xorcist 1.1.2
Usando yaml-lint 0.0.10
¡Bundle completo! 126 dependencias de Gemfile, 232 gems instaladas ahora.
Usa `bundle info [gemname]` para ver dónde está instalada una gema empaquetada.
1 gema instalada de la que dependes directamente está buscando financiación.
  Ejecuta `bundle fund` para más detalles
Migrando base de datos...
rake abortado!
Errno::EACCES: Permiso denegado @ dir_s_mkdir - /src/app/assets/javascripts/plugins
/src/lib/plugin/instance.rb:449:in `ensure_directory'
/src/lib/plugin/instance.rb:721:in `activate!'
/src/lib/discourse.rb:279:in `block in activate_plugins!'
/src/lib/discourse.rb:276:in `each'
/src/lib/discourse.rb:276:in `activate_plugins!'
/src/config/application.rb:222:in `block in <class:Application>'
/src/lib/plugin.rb:6:in `initialization_guard'
/src/config/application.rb:221:in `<class:Application>'
/src/config/application.rb:81:in `<module:Discourse>'
/src/config/application.rb:80:in `<main>'
/src/Rakefile:7:in `<main>'
(Ver rastreo completo ejecutando la tarea con --trace)
# d/rails s
Traceback (most recent call last):
        8: from /src/bin/unicorn:70:in `<main>'
        7: from /src/bin/unicorn:38:in `ensure_cache_clean!'
        6: from /usr/local/lib/ruby/2.7.0/fileutils.rb:211:in `mkdir_p'
        5: from /usr/local/lib/ruby/2.7.0/fileutils.rb:211:in `each'
        4: from /usr/local/lib/ruby/2.7.0/fileutils.rb:226:in `block in mkdir_p'
        3: from /usr/local/lib/ruby/2.7.0/fileutils.rb:226:in `reverse_each'
        2: from /usr/local/lib/ruby/2.7.0/fileutils.rb:228:in `block (2 levels) in mkdir_p'
        1: from /usr/local/lib/ruby/2.7.0/fileutils.rb:250:in `fu_mkdir'
/usr/local/lib/ruby/2.7.0/fileutils.rb:250:in `mkdir': Permiso denegado @ dir_s_mkdir - /src/tmp (Errno::EACCES)
1 me gusta


¿Cómo deshabilito cors para el desarrollo?
Quiero enviar solicitudes cors desde el origen de http://localhost:3001 pero la configuración de cors_origin no tiene ningún efecto. La cabecera Access-Control-Allow-Origin no aparece.
olvídalo. Lo resolví. Parece que la configuración de enable_cors se ignora en modo de desarrollo.

por lo que el middleware cors nunca se instala. Simplemente eliminé la declaración if en mi repositorio local de discourse para que el middleware se instale en cualquier caso.

Quizás un desarrollador (o el autor de esta guía, @rishabh, quizás) pueda ayudarme. Seguí la guía del OP al pie de la letra, en una nueva instalación de VM con Ubuntu 22.04, usando una cuenta de usuario (no root).

  • Al crear un enlace simbólico del plugin en la subcarpeta discourse/plugins/, los cambios en el código JS inicializador del plugin no se ven a menos que haga d/shutdown_dev; d/boot_dev, a pesar de reiniciar d/rails s y d/ember-cli.

  • Al copiar el plugin en la subcarpeta discourse/plugins/, los cambios en el código JS inicializador del plugin se ven sin hacer d/shutdown_dev; d/boot_dev, pero solo reiniciando d/rails s y d/ember-cli.

El plugin en cuestión es discourse-math, y el código que estoy cambiando está en assets/initializers/javascript/*.js. Noté que estos archivos se cargan de forma secundaria y no son llamados directamente por el navegador mediante HTTP GET (no estoy seguro si esto marca la diferencia).

p.d. Solo soy nuevo en Discourse, no en el desarrollo web/JS (en otras palabras, no es necesario que me pregunten si actualicé el navegador :slight_smile:).

¿Puede un desarrollador revisar este error? Parece estar relacionado con Ruby en lugar de algo específico de mi situación. Estaba instalando Discourse for Development en Windows siguiendo estas instrucciones para la instalación de Docker, lo cual he hecho con éxito varias veces. El script llegó hasta la instalación de la base de datos y falló. La primera advertencia no parece ser fatal, pero hay un archivo xss.min.js faltante más abajo en este volcado que sí lo fue:

‘’'Estás intentando ejecutar migraciones en tu entorno de prueba y no estás cargando plugins, estableciendo LOAD_PLUGINS a 1
ADVERTENCIA DE DEPRECACIÓN: El uso del manejo de conexión heredado está obsoleto. Por favor, establece
legacy_connection_handling a false en tu aplicación.

El nuevo manejo de conexión no soporta el
getter y setter connection_handlers.

Lee más sobre cómo migrar en: Multiple Databases with Active Record — Ruby on Rails Guides
(llamado desde en /src/config/environment.rb:7)
== 20150501152228 RenameTotalVotesToVoters: migrando =========================
== 20150501152228 RenameTotalVotesToVoters: migrado (0.0106s) ===============
== 20151016163051 MergePollsVotes: migrando ==================================
== 20151016163051 MergePollsVotes: migrado (0.0017s) =========================
== 20160321164925 ClosePollsInClosedTopics: migrando =========================
== 20160321164925 ClosePollsInClosedTopics: migrado (0.0281s) ===============
== 20180820073549 CreatePollsTables: migrando ================================
– create_table(:polls, {})
→ 0.0067s
– add_index(:polls, [:post_id, :name], {:unique=>true})
→ 0.0008s
– create_table(:poll_options, {})
→ 0.0039s
– add_index(:poll_options, [:poll_id, :digest], {:unique=>true})
→ 0.0009s
– create_table(:poll_votes, {:id=>false})
→ 0.0044s
– add_index(:poll_votes, [:poll_id, :poll_option_id, :user_id], {:unique=>true})
→ 0.0006s
== 20180820073549 CreatePollsTables: migrado (0.0188s) =======================
== 20180820080623 MigratePollsData: migrando =================================
– execute(“INSERT INTO post_custom_fields (name, value, post_id, created_at, updated_at)\nSELECT ‘has_polls’, ‘t’, post_id, MIN(created_at), MIN(updated_at)\n FROM polls\n GROUP BY post_id\n”)
→ 0.0008s
== 20180820080623 MigratePollsData: migrado (0.0033s) ========================
== 20191114160613 AddGraphToPolls: migrando ==================================
– add_column(:polls, :chart_type, :integer, {:default=>0, :null=>false})
→ 0.0012s
== 20191114160613 AddGraphToPolls: migrado (0.0020s) =========================
== 20191206123012 AddGroupNameToPolls: migrando ==============================
– add_column(:polls, :groups, :string, {})
→ 0.0005s
== 20191206123012 AddGroupNameToPolls: migrado (0.0012s) =====================
== 20200520015508 ClearLastGravatarDownloadAttemptOnUserAvatars: migrando ====
– execute(“UPDATE user_avatars\nSET last_gravatar_download_attempt = null\nWHERE user_id = -2 AND custom_upload_id IS NULL AND gravatar_upload_id IS NULL\n”)
→ 0.0006s
== 20200520015508 ClearLastGravatarDownloadAttemptOnUserAvatars: migrado (0.0014s)
== 20200804144550 AddTitleToPolls: migrando ==================================
– add_column(:polls, :title, :string, {})
→ 0.0005s
== 20200804144550 AddTitleToPolls: migrado (0.0011s) =========================
rake aborted!
Errno::ENOENT: No such file or directory @ rb_sysopen - /src/app/assets/javascripts/node_modules/xss/dist/xss.min.js
/src/lib/pretty_text.rb:613:in block in ctx_load' /src/lib/pretty_text.rb:612:in each’
/src/lib/pretty_text.rb:612:in ctx_load' /src/lib/pretty_text.rb:108:in create_es6_context’
/src/lib/pretty_text.rb:153:in block in v8' /src/lib/pretty_text.rb:151:in synchronize’
/src/lib/pretty_text.rb:151:in v8' /src/lib/pretty_text.rb:190:in block in markdown’
/src/lib/pretty_text.rb:606:in block in protect' /src/lib/pretty_text.rb:605:in synchronize’
/src/lib/pretty_text.rb:605:in protect' /src/lib/pretty_text.rb:189:in markdown’
/src/lib/pretty_text.rb:318:in cook' /src/app/models/user_profile.rb:149:in cooked’
/src/app/models/user_profile.rb:158:in cook' (eval):51:in block (2 levels) in run_file’
/src/lib/tasks/db.rake:234:in block (2 levels) in <main>' /src/lib/distributed_mutex.rb:57:in block in synchronize’
/src/lib/distributed_mutex.rb:53:in synchronize' /src/lib/distributed_mutex.rb:53:in synchronize’
/src/lib/distributed_mutex.rb:38:in synchronize' /src/lib/tasks/db.rake:214:in block in ’
Tasks: TOP => db:migrate
(Ver el trace completo ejecutando la tarea con --trace)‘’’

3 Me gusta

Muchas gracias por este gran recurso. Un par de puntos para ayudar:

  1. Aquí tienes un comando para eliminar y reiniciar completamente los datos:
    docker stop discourse_dev ; docker rm discourse_dev ; sudo rm -rf data ; rm -rf tmp/*

  2. Si tienes problemas de migración como los anteriores, asegúrate de tener los permisos correctos. Debes ser parte del grupo docker o tener sudo (mala segunda opción).

  3. Deja que d/rails s se complete antes de lanzar d/ember-cli, de lo contrario habrá algunas rarezas.

1 me gusta

Gracias por esto, Tarek.

Después de borrar la instalación y repetir el proceso de clonación, se produjo exactamente el mismo error durante la inicialización, es decir;
"rake aborted!
“Errno::ENOENT: No such file or directory @ rb_sysopen”

Sin embargo, esta vez pude continuar con éxito y llegué a “Congratulations”. Gracias.

Ahora, debido a que el script terminó temprano, no hay correo electrónico de administrador de desarrollo ni archivo de configuración. Sería bueno si alguien descubriera el problema con la inicialización.

Configuré un correo electrónico de administrador usando el comando “d/rake admin:create” e ingresé un correo electrónico válido y una contraseña (de un mínimo de 10 caracteres).

Luego pude iniciar Discourse con éxito en un navegador como se indica.

2 Me gusta

¿Alguien usa Fedora? Esto añade algo más de complejidad, porque Podman y SELinux se utilizan para una seguridad mejorada. Podman no es realmente un problema, espero, es compatible con OCI y teniendo instalado podman-docker, todos los comandos de Docker se traducen a comandos de Podman. Para SELinux, creo que también he encontrado la solución adecuada, pero todavía me encuentro con un problema.

Así que, mientras estoy en el directorio de discourse, ejecuto este comando mkdir -vp data/postgres; sudo semanage fcontext -a -t svirt_sandbox_file_t \"/home/user/discourse/data(/.*)?\" \u0026\u0026 restorecon -rv . para aplicar una etiqueta de contexto SELinux que creo que es suficiente para esto (al menos, los errores de SELinux han desaparecido).

Pero todavía me encuentro con este error:

[user@fedora discourse]$ d/boot_dev --init
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Error: template: info:1:2: executing "info" at <.Architecture>: can't evaluate field Architecture in type *define.Info
WARNING: Docker architecture is not x86_64.
Discourse development is unlikely to work using Docker's architecture emulation.
Please try a native development installation.
Using source in: /home/user/discourse
Using data in:   /home/user/discourse/data/postgres
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
✔ docker.io/discourse/discourse_dev:release
Trying to pull docker.io/discourse/discourse_dev:release...
Getting image source signatures
Copying blob b42e9bacf67a done  
Copying blob 3257b89dc3e0 done  
Copying blob 8f87c7014fb0 done  
Copying blob bf00c24d0f5b done  
Copying blob 10e0cd28eb63 done  
Copying blob 1efc276f4ff9 done  
Copying blob 6d9350d0e59c done  
Copying blob 84ee3423e706 done  
Copying blob ee2701209d47 done  
Copying blob ce48a2c1c5d3 done  
Copying blob 2f702c3c2f9f done  
Copying blob 27762615d0fc done  
Copying blob 7056a5796a1a done  
Copying blob c8a22dd30e4c done  
Copying blob 1a93cd2f0c23 done  
Copying config 6365e737b9 done  
Writing manifest to image destination
Storing signatures
6365e737b90aea36af1fd9ed029db43a0a620f1c285416546f5e6ee728aca4c5
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
5282393e248e33800e235b4405c9a7197d10a3fc1d405450f1c99d2a5c7c85c7
Installing gems...
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Could not locate Gemfile

El journal de systemd informa esto:

Aug 09 18:47:45 fedora podman[19380]: 2022-08-09 18:47:45.841001786 +0200 CEST m=+0.137712533 image pull  discourse/discourse_dev:release
Aug 09 18:47:45 fedora podman[19380]: 
Aug 09 18:47:46 fedora podman[19380]: 2022-08-09 18:47:46.043506861 +0200 CEST m=+0.340217585 container create 5282393e248e33800e235b4405c9a7197d10a3fc1d405450f1c99d2a5c7c85c7 (image=docker.io/discourse/discourse_dev:release, name=discourse_dev)
Aug 09 18:47:46 fedora kernel: tun: Universal TUN/TAP device driver, 1.6
Aug 09 18:47:46 fedora systemd[1684]: selinux: avc:  op=load_policy lsm=selinux seqno=7 res=1
Aug 09 18:47:46 fedora systemd[1684]: selinux: Regex version mismatch, expected: 10.39 2021-10-29 actual: 10.40 2022-04-14
Aug 09 18:47:46 fedora systemd[1684]: selinux: Regex version mismatch, expected: 10.39 2021-10-29 actual: 10.40 2022-04-14
Aug 09 18:47:46 fedora systemd[1684]: selinux: Regex version mismatch, expected: 10.39 2021-10-29 actual: 10.40 2022-04-14
Aug 09 18:47:46 fedora systemd[1684]: Started libpod-conmon-5282393e248e33800e235b4405c9a7197d10a3fc1d405450f1c99d2a5c7c85c7.scope.
Aug 09 18:47:46 fedora systemd[1684]: Started libpod-5282393e248e33800e235b4405c9a7197d10a3fc1d405450f1c99d2a5c7c85c7.scope - libcrun container.
Aug 09 18:47:46 fedora chronyd[792]: Selected source 158.101.221.122 (2.fedora.pool.ntp.org)
Aug 09 18:47:46 fedora podman[19380]: 2022-08-09 18:47:46.370028125 +0200 CEST m=+0.666738859 container init 5282393e248e33800e235b4405c9a7197d10a3fc1d405450f1c99d2a5c7c85c7 (image=docker.io/discourse/discourse_dev:release, name=discourse_dev)
Aug 09 18:47:46 fedora podman[19380]: 2022-08-09 18:47:46.433863112 +0200 CEST m=+0.730573845 container start 5282393e248e33800e235b4405c9a7197d10a3fc1d405450f1c99d2a5c7c85c7 (image=docker.io/discourse/discourse_dev:release, name=discourse_dev)
Aug 09 18:47:46 fedora discourse_dev[19420]: run-parts: executing /etc/runit/1.d/00-fix-var-logs
Aug 09 18:47:46 fedora discourse_dev[19420]: run-parts: executing /etc/runit/1.d/anacron
Aug 09 18:47:46 fedora discourse_dev[19420]: run-parts: executing /etc/runit/1.d/cleanup-pids
Aug 09 18:47:46 fedora discourse_dev[19420]: Cleaning stale PID files
Aug 09 18:47:46 fedora discourse_dev[19420]: run-parts: executing /etc/runit/1.d/ensure-database
Aug 09 18:47:47 fedora podman[19425]: 2022-08-09 18:47:47.698175757 +0200 CEST m=+1.211177315 container exec 5282393e248e33800e235b4405c9a7197d10a3fc1d405450f1c99d2a5c7c85c7 (image=docker.io/discourse/discourse_dev:release, name=discourse_dev)
Aug 09 18:47:48 fedora discourse_dev[19420]: Started runsvdir, PID is 29
Aug 09 18:47:48 fedora podman[19425]: 2022-08-09 18:47:48.535303673 +0200 CEST m=+2.048305123 container exec_died 5282393e248e33800e235b4405c9a7197d10a3fc1d405450f1c99d2a5c7c85c7 (image=docker.io/discourse/discourse_dev:release, name=discourse_dev, execID=166d86f7ca8739899bd59801c2f8bb3d9b940329d8e6bb29d0f45ad82e9d60b0)

El directorio de logs en el directorio de discourse está vacío, ¿cómo podría solucionar esto mejor?
Las rutas parecen estar configuradas correctamente para encontrar el archivo Gem.

[user@fedora discourse]$ SCRIPTPATH=$(cd "$(dirname "$0")" > /dev/null; pwd -P)
[user@fedora discourse]$ echo $SCRIPTPATH 
/home/user/discourse

Tuve algo de éxito hace tiempo con un entorno de desarrollo virtual de Fedora desde cero, pero no pude conseguir que funcionara una configuración de producción. También pregunté en la Q de Podman, a la que alguien respondió amablemente diciendo que era posible pero que había muchas cosas que cambiar y que no tenía tiempo de hacerlo. .

Me encantaría poner en marcha versiones de Fedora para desarrollo y producción. .

2 Me gusta

No entiendo esta pregunta. Aborta con esto:

rake aborted!
Errno::ENOENT: No such file or directory @ rb_sysopen - /src/app/assets/javascripts/node_modules/xss/dist/xss.min.js
/src/lib/pretty_text.rb:613:in `block in ctx_load'
/src/lib/pretty_text.rb:612:in `each'
/src/lib/pretty_text.rb:612:in `ctx_load'
/src/lib/pretty_text.rb:108:in `create_es6_context'
/src/lib/pretty_text.rb:153:in `block in v8'
/src/lib/pretty_text.rb:151:in `synchronize'
/src/lib/pretty_text.rb:151:in `v8'
/src/lib/pretty_text.rb:190:in `block in markdown'
/src/lib/pretty_text.rb:606:in `block in protect'
/src/lib/pretty_text.rb:605:in `synchronize'
/src/lib/pretty_text.rb:605:in `protect'
/src/lib/pretty_text.rb:189:in `markdown'
/src/lib/pretty_text.rb:318:in `cook'
/src/app/models/user_profile.rb:149:in `cooked'
/src/app/models/user_profile.rb:158:in `cook'
(eval):51:in `block (2 levels) in run_file'
/src/lib/tasks/db.rake:234:in `block (2 levels) in <main>'
/src/lib/distributed_mutex.rb:57:in `block in synchronize'
/src/lib/distributed_mutex.rb:53:in `synchronize'
/src/lib/distributed_mutex.rb:53:in `synchronize'
/src/lib/distributed_mutex.rb:38:in `synchronize'
/src/lib/tasks/db.rake:214:in `block in <main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

Me gustaría usar Ubuntu, pero por alguna razón no funciona bien con spice-vdagent, muchos errores gráficos al ejecutar la VM. Fedora funciona suave como la seda… Pensé que los contenedores arreglaban la portabilidad :stuck_out_tongue: Supongo que simplemente configuraré un sistema Ubuntu sin cabeza e iniciaré sesión a través de SSH.


Recibo el mismo error en Ubuntu Server 22.04

Yo también tengo este problema. Seguí y verifiqué dos veces las sugerencias de @tarek. El problema sigue apareciendo. También limpié todo el directorio de discourse y comencé de cero. Usando Ubuntu 22.04.01 en una VM y usando el último Docker disponible para Ubuntu.

1 me gusta

A partir de la rama principal actual de git, esto no se completará correctamente. Creo que es un error en el núcleo. Para poner en marcha un entorno de desarrollo, haz lo siguiente después del error:

d/rake db:migrate
d/rake admin:create
d/rails s

además, en las dos terminales siguientes, d/ember-cli y d/mailhog.

4 Me gusta

¿Alguna idea sobre cómo puedo evitar que d/rails s muestre toda la salida de la consulta? Me resulta mucho más difícil usar byebug y otras herramientas para detectar errores.

2 Me gusta

Prueba: DISCOURSE_DEV_LOG_LEVEL=info bin/rails s

Más consejos aquí: https://discourse.pluginmanager.org/t/debugging-ruby-with-byebug/378?u=merefield

7 Me gusta

Hola,

Estoy intentando ejecutar esto en Ubuntu en estable (v2.8.8) y estoy recibiendo los siguientes errores:

Migrating database...
== 20220104053343 AddBookmarkPolymorphicColumns: migrating ====================
-- add_column(:bookmarks, :bookmarkable_id, :integer)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

PG::DuplicateColumn: ERROR:  column "bookmarkable_id" of relation "bookmarks" already exists
/src/lib/migration/safe_migrate.rb:92:in `async_exec'
/src/db/migrate/20220104053343_add_bookmark_polymorphic_columns.rb:5:in `change'
/src/lib/freedom_patches/schema_migration_details.rb:9:in `block in exec_migration'
/src/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
/src/lib/migration/safe_migrate.rb:28:in `migrate'
/src/lib/migration/safe_migrate.rb:55:in `migrate'
/src/lib/tasks/db.rake:218:in `block (2 levels) in <main>'
/src/lib/distributed_mutex.rb:33:in `block in synchronize'
/src/lib/distributed_mutex.rb:29:in `synchronize'
/src/lib/distributed_mutex.rb:29:in `synchronize'
/src/lib/distributed_mutex.rb:14:in `synchronize'
/src/lib/tasks/db.rake:210:in `block in <main>'

Caused by:
ActiveRecord::StatementInvalid: PG::DuplicateColumn: ERROR:  column "bookmarkable_id" of relation "bookmarks" already exists
/src/lib/migration/safe_migrate.rb:92:in `async_exec'
/src/db/migrate/20220104053343_add_bookmark_polymorphic_columns.rb:5:in `change'
/src/lib/freedom_patches/schema_migration_details.rb:9:in `block in exec_migration'
/src/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
/src/lib/migration/safe_migrate.rb:28:in `migrate'
/src/lib/migration/safe_migrate.rb:55:in `migrate'
/src/lib/tasks/db.rake:218:in `block (2 levels) in <main>'
/src/lib/distributed_mutex.rb:33:in `block in synchronize'
/src/lib/distributed_mutex.rb:29:in `synchronize'
/src/lib/distributed_mutex.rb:29:in `synchronize'
/src/lib/distributed_mutex.rb:14:in `synchronize'
/src/lib/tasks/db.rake:210:in `block in <main>'

Caused by:
PG::DuplicateColumn: ERROR:  column "bookmarkable_id" of relation "bookmarks" already exists
/src/lib/migration/safe_migrate.rb:92:in `async_exec'
/src/db/migrate/20220104053343_add_bookmark_polymorphic_columns.rb:5:in `change'
/src/lib/freedom_patches/schema_migration_details.rb:9:in `block in exec_migration'
/src/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
/src/lib/migration/safe_migrate.rb:28:in `migrate'
/src/lib/migration/safe_migrate.rb:55:in `migrate'
/src/lib/tasks/db.rake:218:in `block (2 levels) in <main>'
/src/lib/distributed_mutex.rb:33:in `block in synchronize'
/src/lib/distributed_mutex.rb:29:in `synchronize'
/src/lib/distributed_mutex.rb:29:in `synchronize'
/src/lib/distributed_mutex.rb:14:in `synchronize'
/src/lib/tasks/db.rake:210:in `block in <main>'

Tasks: TOP => db:migrate
(See full trace by running task with --trace)

He intentado hacer:

d/rake db:migrate RAILS_ENV=development

Pero termino con el mismo error. ¿Alguien ha pasado por esto también?

Sospecho que estás usando la misma base de datos que antes, ¿así que ya está migrada?

En realidad @hyphalos, me retracto. Puedo reproducir esto con los siguientes comandos de shell dentro del contenedor:

discourse@discourse:/src$ sudo su postgres -c 'psql discourse -c \"drop database discourse_test\"'
DROP DATABASE
discourse@discourse:/src$ sudo su postgres -c 'psql discourse -c \"create database discourse_test\"'
CREATE DATABASE
discourse@discourse:/src$ sudo su postgres -c 'psql -c \"grant all privileges on database discourse_test to discourse;\"'
GRANT
discourse@discourse:/src$ RAILS_ENV=test rake db:migrate

¿Algo no va bien aquí?

¿Parece que esta migración puede ser problemática?:

== 20220104053343 AddBookmarkPolymorphicColumns: migrating ====================
-- add_column(:bookmarks, :bookmarkable_id, :integer)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

PG::DuplicateColumn: ERROR:  column "bookmarkable_id" of relation "bookmarks" already exist

lo cual es extraño (?) porque:

discourse_test=> \d bookmarks
                                                Table "public.bookmarks"
        Column         |              Type              | Collation | Nullable |                Default
---------------------------+--------------------------------+-----------+----------+---------------------------------------
 id                        | bigint                         |           | not null | nextval('bookmarks_id_seq'::regclass)
 user_id                   | bigint                         |           | not null |
 post_id                   | bigint                         |           | not null |
 name                      | character varying(100)         |           |          |
 reminder_at               | timestamp without time zone    |           |          |
 created_at                | timestamp(6) without time zone |           | not null |
 updated_at                | timestamp(6) without time zone |           | not null |
 reminder_last_sent_at     | timestamp without time zone    |           |          |
 reminder_set_at           | timestamp without time zone    |           |          |
 auto_delete_preference    | integer                        |           | not null | 0
 pinned                    | boolean                        |           |          | false
 for_topic                 | boolean                        |           | not null | false
Indexes:
    "bookmarks_pkey" PRIMARY KEY, btree (id)
    "index_bookmarks_on_post_id" btree (post_id)
    "index_bookmarks_on_reminder_at" btree (reminder_at)
    "index_bookmarks_on_reminder_set_at" btree (reminder_set_at)
    "index_bookmarks_on_user_id" btree (user_id)
    "index_bookmarks_on_user_id_and_post_id_and_for_topic" UNIQUE, btree (user_id, post_id, for_topic)

Esto no afecta a tests-passed, parece, ¿solo a la rama stable?

gracias a @RGJ esto podría arrojar algo de luz:

cc: @pfaffman

1 me gusta

Hola @Robert,

Pensé que me estaba volviendo loco, pensé que era el único que experimentaba esto. Me ha costado encontrar una solución alternativa para esto. Tengo una publicación anterior aquí donde encontré una solución alternativa para el problema de los marcadores, pero me encontré con otro problema:

¿Alguien puede indicarme la dirección correcta para solucionar esto?
Esto ocurre cuando intento ejecutar d/boot_dev --init

rake abortó!
ActiveRecord::ConnectionNotEstablished: la conexión al servidor en "127.0.0.1", puerto 5432 falló: Conexión rechazada
        ¿Está el servidor ejecutándose en ese host y aceptando conexiones TCP/IP?
la conexión al servidor en "::1", puerto 5432 falló: No se puede asignar la dirección solicitada
        ¿Está el servidor ejecutándose en ese host y aceptando conexiones TCP/IP?
/src/config/initializers/006-ensure_login_hint.rb:8:in `block in <main>'
/src/config/environment.rb:7:in `<main>'

Causado por:
PG::ConnectionBad: la conexión al servidor en "127.0.0.1", puerto 5432 falló: Conexión rechazada
        ¿Está el servidor ejecutándose en ese host y aceptando conexiones TCP/IP?
la conexión al servidor en "::1", puerto 5432 falló: No se puede asignar la dirección solicitada
        ¿Está el servidor ejecutándose en ese host y aceptando conexiones TCP/IP?
/src/config/initializers/006-ensure_login_hint.rb:8:in `block in <main>'
/src/config/environment.rb:7:in `<main>'
Tareas: TOP => db:migrate => db:load_config => environment
(Ver el rastreo completo ejecutando la tarea con --trace)

Gracias de antemano por toda la ayuda :smile:

1 me gusta

Estoy recibiendo el siguiente error al ejecutar d/boot_dev --init

...
...
...
== 20221219082223 AddIndexToChatMessages: migrated (0.0138s) ==

rake aborted!
Errno::ENOENT: No such file or directory @ rb_sysopen - /src/app/assets/javascripts//node_modules/loader.js/dist/loader/loader.js
/src/lib/pretty_text.rb:637:in `block in ctx_load'
/src/lib/pretty_text.rb:636:in `each'
/src/lib/pretty_text.rb:636:in `ctx_load'
/src/lib/pretty_text.rb:97:in `create_es6_context'
/src/lib/pretty_text.rb:144:in `block in v8'
/src/lib/pretty_text.rb:142:in `synchronize'
/src/lib/pretty_text.rb:142:in `v8'
/src/lib/pretty_text.rb:184:in `block in markdown'
/src/lib/pretty_text.rb:630:in `block in protect'
/src/lib/pretty_text.rb:629:in `synchronize'
/src/lib/pretty_text.rb:629:in `protect'
/src/lib/pretty_text.rb:183:in `markdown'
/src/lib/pretty_text.rb:328:in `cook'
/src/app/models/user_profile.rb:149:in `cooked'
/src/app/models/user_profile.rb:158:in `cook'
(eval):51:in `block (2 levels) in run_file'
/src/lib/tasks/db.rake:234:in `block (2 levels) in <main>'
/src/lib/distributed_mutex.rb:57:in `block in synchronize'
/src/lib/distributed_mutex.rb:53:in `synchronize'
/src/lib/distributed_mutex.rb:53:in `synchronize'
/src/lib/distributed_mutex.rb:38:in `synchronize'
/src/lib/tasks/db.rake:214:in `block in <main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)