Docker Cloud Costruzioni automatizzate

Sto cercando di capire le differenze principali tra le costruzioni automatizzate tramite Cloud Docker e altri server CI come Jenkins, Circle …

Dalla mia comprensione attraverso la Docker Cloud potrei colbind Github repo e triggersre i ganci web su particolari cambi di branch. Facendo così, con una corretta configuration DockerCloud eseguire automaticamente, testare e build la mia image e, infine, distribuirla a un collegamento remoto collegato come AWS …

Quindi, lo stesso stream di lavoro è realizzabile ed è l'implementazione comune di CI / CD utilizzando server CI come Jenkins, Circle. Che eseguono sostanzialmente gli stessi passaggi di DockerCloud.

Qual è la differenza tra l'utilizzo di Jenkins CI e Docker Cloud Automated?

Quale approccio devo utilizzare per integrare la pipeline CI / CD completo nel mio stream di lavoro di sviluppo?

L'objective principale di Hubs Docker è quello di fornire un'image del tuo codice, che potrebbe essere facilmente distribuita tra i tuoi utenti. È molto semplice build questa image e la maggior parte dei servizi può connettersi a Docker Hub per scaricare questa image.

Docker Hub è molto lenta e mancano molte funzioni, per esempio non è ansible interrompere il process di costruzione e non si ottiene l'output dal vivo del process di costruzione. Questo è where entra in gioco un full CI, where hai queste funzionalità. Inoltre è più adatto per test e implementazione, in quanto è ansible definire compiti separati per i test (test di unità, test di integrazione, …) o fasi di distribuzione / produzione.

La maggior parte dei CI, come la CircleCI, può essere configurata per creare, testare e distribuire l'image in Docker Hub , quindi non è necessario costruirlo sul Docker Hub stesso. Mi piace questo perché, come ho già detto, non hai alcun controllo sul process di costruzione sul Docker Hub stesso, che può essere molto fastidioso quando devi aspettare minuti finché il solo lavoratore non abbia terminato il suo task.

Così Docker Hub può essere utilizzato quando si desidera creare la tua image, ma manca di alcune funzionalità che riducono la sua usabilità per testare l'image. Pertanto, suggerisco di utilizzare un CI completo per il test e quindi innescare una build sul Docker Hub (o nel CI stesso) per creare e pubblicare l'image pronta per la produzione. Personalmente, sto usando CircleCI per testare la mia image e quando spingo a padroneggiare un'image pronta per la produzione viene costruita e spinta a Docker Hub.