Gracias por todo el apoyo, desafortunadamente no soluciona el problema.
Para los nuevos usuarios, tal vez valga la pena agregar:
- Entrar al contenedor (por ejemplo,
./launcher enter app
Así que lo hice. Y pnp ya estaba instalado:
root@vtdiscourse-app:/var/www/discourse# pnpm --version
9.5.0
Ya lo hice, como escribí en mi publicación anterior, sin resolver el problema.
Discourse se instaló en abril de 2023.
Sí actualicé con éxito hasta (e incluyendo) la v3.4.0.beta3.
Como se escribió anteriormente, el sistema operativo es un contenedor LXC, que utiliza Debian bullseye con las últimas actualizaciones instaladas.
La única extensión instalada es el Private Topics Plugin (aún en mantenimiento y también mantenido actualizado con cada actualización de discourse de mi parte).
Aquí vamos:
## esta es la plantilla de contenedor Docker todo en uno y autónoma de Discourse
##
## Después de realizar cambios en este archivo, DEBES reconstruir
## /var/discourse/launcher rebuild app
##
## ¡TEN MUCHO CUIDADO AL EDITAR!
## LOS ARCHIVOS YAML SON SÚPER SÚPER SENSIBLES A ERRORES DE ESPACIO O ALINEACIÓN.
## visita http://www.yamllint.com/ para validar este archivo según sea necesario
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
## Descomenta la siguiente línea para habilitar el oyente IPv6
#- "templates/web.ipv6.template.yml"
- "templates/web.ratelimited.template.yml"
## Descomenta estas dos líneas si deseas agregar Lets Encrypt (https)
##- "templates/web.ssl.template.yml"
- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"
## ¿qué puertos TCP/IP debe exponer este contenedor?
## Si deseas que Discourse comparta un puerto con otro servidor web como Apache o nginx,
## consulta https://meta.discourse.org/t/17247 para obtener detalles
expose:
- "80:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Establece db_shared_buffers a un máximo del 25% de la memoria total.
## será establecido automáticamente por bootstrap según la RAM detectada, o puedes anularlo
#db_shared_buffers: "128MB"
db_shared_buffers: "256MB"
## puede mejorar el rendimiento de ordenación, pero aumenta el uso de memoria por conexión
#db_work_mem: "40MB"
## ¿Qué revisión de Git debe usar este contenedor? (por defecto: tests-passed)
#version: tests-passed
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## ¿Cuántas solicitudes web concurrentes se admiten? Depende de la memoria y los núcleos de CPU.
## será establecido automáticamente por bootstrap según las CPU detectadas, o puedes anularlo
UNICORN_WORKERS: 2
## TODO: El nombre de dominio al que responderá esta instancia de Discourse
## Requerido. Discourse no funcionará con un número IP desnudo.
#DISCOURSE_HOSTNAME: 'discourse.example.com'
DISCOURSE_HOSTNAME: 'my-discourse-domain.example.com'
## Descomenta si deseas que el contenedor se inicie con el mismo
## nombre de host (-h opción) que se especifica arriba (por defecto "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Lista de correos electrónicos separados por comas que se convertirán en administradores y desarrolladores
## en el registro inicial, por ejemplo, 'user1@example.com,user2@example.com'
#DISCOURSE_DEVELOPER_EMAILS: 'me@example.com,you@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'my-admin-mail@example.com'
## TODO: El servidor de correo SMTP utilizado para validar nuevas cuentas y enviar notificaciones
# DIRECCIÓN SMTP, nombre de usuario y contraseña son requeridos
# ADVERTENCIA: el carácter '#' en la contraseña SMTP puede causar problemas.
#DISCOURSE_SMTP_ADDRESS: smtp.example.com
DISCOURSE_SMTP_ADDRESS: my-smtp-server.example.com
#DISCOURSE_SMTP_PORT: 587
#DISCOURSE_SMTP_USER_NAME: user@example.com
DISCOURSE_SMTP_USER_NAME: my-user@my-smtp-server.example.com
#DISCOURSE_SMTP_PASSWORD: pa$$word
DISCOURSE_SMTP_PASSWORD: foo(obviamente no)
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (opcional, por defecto true)
#DISCOURSE_SMTP_DOMAIN: discourse.example.com # (requerido por algunos proveedores)
##DISCOURSE_NOTIFICATION_EMAIL: noreply@discourse.example.com # (dirección para enviar notificaciones)
DISCOURSE_NOTIFICATION_EMAIL: my-user@my-smtp-server.example.com # (dirección para enviar notificaciones)
## Si agregaste la plantilla Lets Encrypt, descomenta abajo para obtener un certificado SSL gratuito
#LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
## La dirección CDN http o https para esta instancia de Discourse (configurada para tirar)
## consulta https://meta.discourse.org/t/14857 para obtener detalles
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## La clave de dirección IP de MaxMind para la búsqueda de direcciones IP
## consulta https://meta.discourse.org/t/-/137387/23 para obtener detalles
##DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
DISCOURSE_MAXMIND_LICENSE_KEY: my-key
## El contenedor Docker no tiene estado; todos los datos se almacenan en /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Los plugins van aquí
## consulta https://meta.discourse.org/t/19157 para obtener detalles
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/communiteq/discourse-private-topics.git
## Cualquier comando personalizado para ejecutar después de la construcción
run:
- exec: echo "Inicio de comandos personalizados"
## Si deseas establecer la dirección de correo electrónico 'De' para tu primer registro, descomenta y cambia:
## Después de recibir el primer correo electrónico de registro, vuelve a comentar la línea. Solo necesita ejecutarse una vez.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo "Fin de comandos personalizados"
Cualquier ayuda es apreciada.