Non sembra che ci sia molta letteratura sulle migliori pratiche quando si tratta di containerizzazione di applicazioni Java e sono curioso di sapere quali sono gli approcci logici. Prima era necessario configurare un qualche tipo di server, configurare il suo runtime (librerie, ecc.) E distribuire applicazioni Java pacchettizzate, sia che fossero WAR, JAR, EAR, ecc., Su di esso. Questo è qualcosa che è ancora applicabile nell'era della containerizzazione, ma al giorno d'oggi, con la crescente popolarità di strumenti come Spring Boot, la maggior parte delle app Java sono integrate in JAR di grassi all-in-one che contengono tutto il necessario per l'esecuzione (isolata) server solitamente leggeri).
Tuttavia, sono confuso su come l'assembly di containerizzazione viene solitamente eseguito. Gli archivi Java possono essere costruiti praticamente su qualsiasi macchina abbastanza capace. Il pacchetto risultante, ho capito, è ciò che costruiamo nella nostra immagine Docker per l'implementazione. Nella maggior parte dei casi, i team di sviluppo che adottano CI / CD dispongono di sistemi remoti che eseguono test e compilano automaticamente i JAR. In questo tipo di installazione, come appare il contenitore di distribuzione? Il sistema CI / CD deve essere configurato per pubblicare il JAR grasso in una sorta di repository remoto (ad esempio Artifactory), e quindi estrarre l'immagine Docker da lì per eseguire? O ci si aspetta che il sistema CI / CD raccolga il JAR risultante e pubblichi l'immagine del Docker nel registro?