Lotta ha scritto:
@gigidn
quindi tu per lo sviluppo consiglieresti di rimanere sulla strada classica:
git+db in locale o git+db in una VM, usando il proprio ambiente di sviluppo "locale".
Poi, entrati nella fese di test quindi passaggio in docker, validazione e distribuzione in docker ?
@davide
parlando di _sviluppo_ è anche la tua impostazione ?
Consigliare cosa sia meglio per lo sviluppo è sempre abbastanza complicato perche' spesso è personale e dipende da come meglio ci si trova con particolari strumenti.
Piu' che consigliare, ti dico cosa faccio io le conclusione poi spettano a te.
1) Lo sviluppo lo faccio su VM "locale", odoo installato da git privato con mirror di odoo, dei moduli OCA ed anche non certificati internamente. A questo si aggiunge il repository di sviluppo.
2) I vari repository GIT sono legati ad un sistema di CI/CD (una specie di travis per capirci) che eseguono i test e poi creano un container docker
Nel mio repository docker privato ho:
1) Immagine docker base con solo odoo ce (mirror del repo base di odoo)
2) immagine docker ottenuta dalla precedente con l'aggiunta della parte ENT
Fin qui il codice è tutto standard.
3) immagine docker ottenuta come estensione delle due precedenti dove viene inserito il codice base della distribuzione che uso. Viene inserito sia il codice privato che è generico per ogni installazione sia alcuni moduli OCA che fanno parte della nostra distribuzione base.
Ognuna di queste 3 immagini viene testata prima in maniera automatica dal sistema di CI/CD e poi dal team di controllo qualita'.
Lo sviluppo e la manutenzione di queste immagini è attività separata rispetto allo "sviluppo" per un progetto specifico ed usa clone dei repository originali (tranne per quello interno CORE ovviamente) per assicurare che eventuali cambiamenti nei repository di origine siano comunque controllati prima di essere utilizzati.
Lo sviluppo di un progetto viene fatto a partire dai git di cui sopra con l'aggiunta di un ulteriore repository che è quello specifico per il progetto.
Il codice è locale nelle macchine degli sviluppatori ma il run viene fatto appunto in VM dedicate usando le funzioni di sincronizzazione ed interprete remoto di pycharm professional.
Il rilascio nelle varie fasi: test, stage, produzione attiva il sistema di CI/CD che crea l'immagine docker come estensione di uno dei modelli di cui sopra. Il sottosistema di CI/CD si occupa anche del deploy.
Ecco spiegato il motivo per cui non posso darti consigli, io ho messo assieme una serie di strumenti e metodi in funzione di cosa era meglio per me e le persone che lavorano con me. La mia pipeline di sviluppo è molto legata agli strumenti, o meglio alle funzionalita' che questi strumenti forniscono, e potrebbe non essere replicabile con altri strumenti o in altri contesti.
In definitiva non credo che ci sia UN MODO ma semplicemente il modo che meglio si adatta a te ed al tuo team.
Spero comunque di esserti stato d'aiuto.