Creazione di un contenitore docker da una distribuzione di capistrano

Sto avendo un po 'di tempo difficile capire come posso utilizzare il codice dell'infrastruttura esistente con Docker.

Ho un'applicazione Ruby on Rails che usa capistrano per spingere le implementazioni. Voglio usare questo script capistrano per creare una nuova image docker. Posso spingere una distribuzione e quindi utilizzare la distribuzione per la directory per distribuire in cima ad un'image esistente dire, preciso (poiché corrisponde al mio target OS).

  • Amazon EC2 Ami raccomandazioni per tier gratis?
  • L'operazione non è consentita quando si avvia Unicorno
  • Conte il numero di CPU consentite in un contenitore Docker
  • Blocca il livello di backup dei volumi di Docker
  • Docker + Apache, come funziona l'utilizzo della memory?
  • Qual è il process migliore per automatizzare lo sviluppo di Zimbra utilizzando cobbler + puppet?
  • Questo sarebbe l'approccio giusto o mi manca qualcosa?

    2 Solutions collect form web for “Creazione di un contenitore docker da una distribuzione di capistrano”

    Di solito in Docker il modo preferito per distribuire un'applicazione in un contenitore è da un file dockerfile che può sostituire il ruolo di uno script capistrano, principalmente che esegue comandi sul contenitore (installare pacchetti, eseguire clone git, servizi di avvio e applicazioni e così via) .

    È ansible definire un file docker con un contenitore di immagini di base e un elenco di comandi da eseguire e quindi creare il proprio contenitore per:

    docker build {{your_repository_containing_dockerfile}} 

    Puoi quindi tradurre il tuo script capistrano in un file docker e sostituire il command Capistrano con l'implementazione di Docker.

    @Ottantotto

    Stiamo usando il docker e Jenkins per eseguire le implementazioni. Teniamo sempre il nostro codice dal docker fino al momento in cui vogliamo rilasciare e farlo funzionare.

    Docker Image dovrebbe essere disponibile in tutti i server / istanze in cui si desidera distribuire l'applicazione.

    È necessario eseguire la distribuzione completa in due passaggi.

    1) Avere un lavoro a Capistrano per build un pacchetto (tar o gz) per il tag / branch dell'applicazione che si desidera distribuire.

    2) Avere un altro lavoro per eseguire le implementazioni effettive nei seguenti passaggi:

    i) Spingere il pacchetto su tutti i server su cui si desidera distribuire l'applicazione su & untar il pacchetto.

    ii) Arrestare se un contenitore è già in esecuzione per la stessa applicazione e far funzionare il contenitore con il relativo contenitore e il codice montato su di esso.

    Per es. Docker eseguire -d -p 8000: 8000 -v / path / to / the / tag: / implementazione / path / interno / docker –name (NameOfContainer) –env TERM = xterm accountid / imagename: versione

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.