È evidente che l’argomento si è ormai completamente sviato, come succede sempre in ogni discussione che va controcorrente. Non ho nemmeno intenzione di discutere della questione dell’uso di un componente tema, ma grazie lo stesso a tutti.
Condivido parzialmente l’opinione dell’OP: le “opinioni” hanno iniziato a trasformarsi in “deridere l’OP per ciò che vuole”.
Non credo che ci sia bisogno di discuterne ulteriormente. Quindi, a meno che qualcuno non abbia un’altra soluzione da proporre in questa discussione, possiamo considerarla chiusa, a mio avviso.
Concordo sul fatto che alcuni post abbiano un’aggressività non necessaria.
Ho menzionato un TC in relazione all’aggiunta di un pulsante alla home page. Questo è già stato dimostrato da diversi componenti. Se non si tratta di un problema di sicurezza, il TC è la soluzione migliore.
Tuttavia, sarei interessato a sapere quali problemi hai con i Temi e i componenti dei Temi? I plugin sono più indicati per la sicurezza e per funzionalità che non possono essere realizzate in un TC, come la modifica del comportamento delle funzioni core. Se preferisci, possiamo discuterne in una conversazione privata e amichevole.
Un altro vantaggio del TC è che puoi modificare il tuo codice direttamente nell’interfaccia web del sito quando necessario.
Il problema che vedo con l’approccio basato sui plugin è che anche i plugin ufficiali, una volta integrati nel core, continuano a utilizzare Git per aggiornare i plugin e Discourse stesso.
Puoi usare il metodo che preferisci per copiare il tuo codice sorgente da dove lo tieni nella directory discourse/plugins. Se non ti piace git clone, puoi usare rsync o cp -a. Basta copiare il tuo plugin sulla tua VM come preferisci e inserire un comando per copiarlo nel modo in cui farebbe git clone.
Questa è sicuramente la risposta corretta. Rispetta i parametri originali della domanda. Questo thread non è stato molto positivo dal punto di vista di mostrare una comunità di supporto.
@Falco@pfaffman Grazie, le vostre risposte hanno chiarito i miei dubbi.
Lascio qui la mia configurazione app.yml nel caso possa essere utile a chiunque cerchi di caricare plugin locali in Discourse dalla macchina host.
## Il container Docker è stateless; tutti i dati sono memorizzati in /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
- volume:
host: /var/discourse/plugins
guest: /var/plugins
## I plugin vanno qui
## vedi https://meta.discourse.org/t/19157 per i dettagli
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
- cp -a /var/plugins/. $home/plugins/
Nella mia configurazione, mantengo tutti i plugin personalizzati in /var/discourse/plugins sull’host.
La directory montata diventa disponibile all’interno del container come /var/plugins e, durante l’hook after_code, il comando:
cp -a /var/plugins/. $home/plugins/
copia tutti i plugin montati nella directory dei plugin nativi di Discourse ($home/plugins, tipicamente /var/www/discourse/plugins).
Questo rende possibile gestire i plugin direttamente dall’host senza utilizzare l’installazione dei plugin basata su git o affidarsi a servizi di hosting di terze parti.
Fantastico. Sono contento che abbia funzionato per te!
Potresti anche creare un symlink verso i plugin invece di copiarli. E se lo facessi, le modifiche apportate potrebbero essere applicate (almeno in alcuni casi in cui non è necessario migrare o compilare le risorse) riavviando il container.