Configurazione dell'ambiente di sviluppo per Mac e CentOS utilizzando Docker

Ho cercato la storia un po 'ma non sono riuscito a trovare una buona risposta. Quindi ho appena chiesto la mia domanda. Se c'è già una buona risposta, ti preghiamo di reindirizzarla per me. Grazie.

La domanda è che ho trovato il nuovo documento di noleggio di mia società elenca un sacco di software da installare per configurare l'ambiente di sviluppo. Di solito ci sono voluti 1 o 2 giorni per un nuovo noleggio per impostare tutto pronto per un nuovo mac. Vogliamo ridurre questo process. La prima cosa che ho pensato è Docker.

Ho letto attraverso la guida utente di Docker e ho seguito alcuni blog relativi a come impostare l'ambiente di dev utilizzando Docker ma ancora un po 'confuso se Docker si applica alla nostra impostazione. Ecco il dettaglio dei requisiti:

  1. Dobbiamo installare un sacco di software (molti di essi sono binari personalizzati). Al momento distribuiamo il codice sorgente, una nuova richiesta di noleggio da creare dal codice sorgente, installarlo e impostare l'ambiente per includere il binario nel path. Mi chiedo se Docker ci permette di installare binari personalizzati nel suo contenitore?

  2. Il codice sorgente non dovrebbe rimanere nel contenitore. Il codice sorgente è ancora controllato nella propria macchina locale usando git. Quindi, come posso fare affidamento sull'ambiente del contenitore Docker per build il mio software? Ho cercato un po 'è che, è necessario montare la cartella nel contenitore e poi shell nel tuo contenitore per build? È come funziona?

  3. Di solito sviluppiamo in mac, il Docker support anche il contenitore mac o semplicemente ti permette di eseguire il contenitore Linux utilizzando boot2Docker?

Grazie tantissimo in anticipo per il tuo aiuto.

Alcune risposte 🙂

In primo luogo, penso sia una buona idea usare Docker per standardizzare la configuration di sviluppo (software, pacchetti personalizzati, variables env, …).

  1. Con Docker, è ansible get i tuoi binari personalizzati dall'host, non è un problema. Con il command CMD, è ansible utilizzare bash per installarli e aggiungerli al PATH. Puoi anche scrivere uno script di shell per installare tutte le tue cose e lanciare questo script quando crei il tuo contenitore
  2. Il tuo codice sarà sull'host e puoi "montare" una cartella host nella tua image docker con il command -v. Es: run run -v / home / user / code: / tmp / codice tuo_image. In dettaglio in dettaglio come lo sviluppatore utilizzerà l'image Docker.
  3. Sì, devi usare Boot2Docker, funziona bene

Una volta che l'image di sviluppo sarà pronta, devi pubblicarla nel registro ufficiale Docker (o ospitare un registro locale della networking).

Successivamente, lo sviluppatore lancerà il seguente command Docker: docker run -rm -ti your_build_image / bin / bash

Questo lancerà un terminal bash nell'image Docker e lo sviluppatore sarà in grado di compilare il codice. Esempio: cd / tmp / code + mvn clean install

Dai un'occhiata a questo articolo per conoscere i volumi: http://jam.sg/blog/mongodb-docker-part-2/

E questo su Dockerfile: https://www.digitalocean.com/community/tutorials/docker-explained-using-dockerfiles-to-automate-building-of-images

Potete anche trovare un sacco di Dockerfiles su github (search Dockerfile).

Se l'objective è quello di accelerare il tempo necessario per get un'impostazione di Mac e utilizzabile nell'ambiente, è consigliabile guardare a Boxen .

Dalla sezione "Informazioni": "Boxen è il robot IT del tuo team, è un framework pericolosamente pensato che automatizza each pezzo dell'ambiente di sviluppo." GitHub, Inc. ha scritto la prima versione di Boxen (immaginativamente chiamata "The Setup") per aiutare i dipendenti inizia la spedizione il giorno uno ".