2014-09-11 19 views
5

Che cos'è un flusso di lavoro per la distribuzione in Digital Ocean con Phusion Docker e supporto Node/Meteor?Come distribuire Meteor e Phusion Docker su Digital Ocean con Docker?

ho provato:

FROM phusion/passenger-nodejs:0.9.10 

# Set correct environment variables. 
ENV HOME /root 

# Use baseimage-docker's init process. 
CMD ["/sbin/my_init"] 

# ssh 
ADD private/keys/akey.pub /tmp/your_key 
RUN cat /tmp/your_key >> /root/.ssh/authorized_keys && rm -f /tmp/your_key 

## Download shit 
RUN apt-get update 
RUN apt-get install -qq -y python-software-properties software-properties-common curl git build-essential 
RUN npm install [email protected] 
# install meteor 
RUN curl https://install.meteor.com | /bin/sh 

# Clean up APT when done. 
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 

# Enable nginx 
# RUN rm -f /etc/service/nginx/down 


#setup app 
RUN mkdir /home/app/someapp 
ADD . /home/app/someapp 
WORKDIR /home/app/someapp 
EXPOSE 4000 
CMD passenger start -p 4000 

Ma niente funziona e poi io non sono sicuro di come gestire realmente aggiornamento/deploy/corsa?

E.g, come gestiresti anche l'aggiornamento dell'app senza ricostruire l'immagine della finestra mobile?

+0

La tua domanda è troppo ampia e non stai descrivendo un problema preciso che hai ma chiedi alla comunità di farlo funzionare. Inizia seguendo uno dei numerosi tutorial per la finestra mobile per familiarizzare con esso. Quindi leggi più attentamente il file Leggimi passeggero finestra mobile, devi almeno l'istruzione 'RUN/build/nodejs.sh' nel tuo Dockerfile – Thomasleveil

risposta

2

Ecco il mio flusso di lavoro suggerito:

  1. creare un account su Docker Hub, è possibile ottenere 1 repository privato gratuito. Se si desidera un repository privato completo ospitato sul proprio server, è possibile eseguire un intero docker registry e utilizzarlo per ospitare le immagini.

  2. creare l'immagine sul computer di sviluppo (in locale o su un server), quindi spingere l'immagine al repository utilizzando docker push

  3. Aggiornare l'immagine quando necessario e rendere effettivi i cambiamenti con docker commit quindi spingere l'immagine aggiornata al tuo repository (dovresti correggere la versione e taggare tutte le tue immagini)

  4. Puoi avviare una gocciolina oceanica digitale con docker preinstallata (dalla scheda delle applicazioni) e semplicemente tirare la tua immagine ed eseguire il tuo contenitore. Ogni volta che aggiorni e spinga la tua immagine dalla tua macchina di sviluppo, puoi semplicemente estrarla nuovamente dalla gocciolina.

Per le infrastrutture grandi e complessi, mi sento di raccomandare esaminando Ansible per configurare il docker containers e gestire digital ocean droplet pure.

Essere consapevoli del fatto che i vostri dati saranno persi se si arresta il contenitore, in modo da considerare la definizione di un volume nel vostro contenitore che è associata a una cartella condivisa sul computer host