secondo questa guida. Qui sto sviluppando Discourse, temi e plugin.
Ho anche un’installazione di Discourse su una macchina virtuale utilizzando Docker, seguendo questa guida.
Queste installazioni funzionano splendidamente.
Non capisco cosa sia Docker e perché i file sulla macchina virtuale siano diversi da quelli sul computer locale.
Cosa succederà se si arresta Docker sulla macchina virtuale con il comando d/shutdown_dev?
Come posso sincronizzare queste due installazioni utilizzando Git?
Posso installare Docker su una macchina locale e a cosa serve?
La presenza o meno di Docker è in gran parte irrilevante per lo sviluppo della maggior parte dei componenti di plugin e temi. Si tratta di una preoccupazione a parte. Io non eseguo un’istanza Docker in ambiente di sviluppo.
Quando sviluppi addon per Discourse, non dovresti preoccuparti eccessivamente della versione esatta o della configurazione della tua istanza di sviluppo rispetto a quella di produzione, perché in ogni caso, se il plugin è open source, non hai il controllo sulla maggior parte delle istanze su cui finirà per essere utilizzato. La cosa più importante è seguire le buone pratiche per rendere il tuo addon più robusto rispetto ai cambiamenti nel core di Discourse. Anche se stai sviluppando solo per la tua istanza Discourse, non hai comunque il controllo sui cambiamenti del core, quindi lo stesso approccio rimane valido.
Versioni leggermente diverse in genere NON dovrebbero causare il fallimento del tuo plugin o componente tema. Può accadere, ma non è coerente. I miei plugin e i TC (Theme Components) possono rimanere mesi senza necessità di modifiche, anche lavorando su commit del core distanti mesi l’uno dall’altro.
Normalmente, quando lavoro su modifiche ai plugin (correzioni o miglioramenti), aggiorno la mia istanza di sviluppo all’ultima versione di master, così da intercettare eventuali cambiamenti che rompono la compatibilità. Questo si ottiene semplicemente eseguendo un git pull, bundle install e db:migrate.
Le istanze di produzione dovrebbero essere aggiornate tramite l’interfaccia grafica o il comando rebuild da riga di comando.
Il mio consiglio è di pubblicare un plugin, attirare utenti e imparare dai problemi che incontrerai grazie all’esperienza. Non rimandare troppo: agisci! E non preoccuparti di commettere errori, perché ti aiutano a imparare.
Porrei fare domande di questo tipo nel argomento di sviluppo Docker. Per ora, non modificherei gli script predefiniti utilizzati per gestire lo sviluppo con Docker, a meno che tu non abbia un motivo molto valido; presumibilmente sono lì per aiutarti.