En una instalación estándar, Discourse (y por lo tanto, los plugins) se ejecutan dentro de un contenedor de Docker. Ese contenedor no tiene acceso completo al sistema de archivos del host, por lo que no puede acceder al directorio /var/discourse del host para modificar app.yml o ejecutar launcher.
E incluso si pudiera… hay una pequeña dependencia circular aquí. Ejecutar ./launcher rebuild mataría el contenedor de Docker… lo que mataría el launcher rebuild que iniciaste desde el plugin ![]()
Hay posibles soluciones aquí. Por ejemplo, añadir montajes de volúmenes de Docker adicionales, para que la configuración/launcher pueda ser accedida desde dentro del contenedor. Pero no es trivial.
Si mal no recuerdo, alguien creó una vez un plugin de ‘gestor de plugins’… que requería algunos ajustes en el app.yml para añadir cosas como el montaje del volumen. Pero ahora no puedo encontrar ningún tema al respecto, así que asumo que ya no se mantiene. ¿Quizás alguien más pueda compartir un enlace si lo encuentra? (o tal vez todo fue un sueño
)
En el lado de CDCK, definitivamente nos inclinamos por usar temas cuando queremos que los clientes puedan instalar/actualizar/desinstalar a voluntad. Permitir que las personas instalen plugins arbitrariamente no es una opción, porque eso afectaría a otros clientes que se ejecutan en el mismo servidor.