2015-07-22 5 views
19

Sto creando un'immagine finestra mobile utilizzando un file Docker. Vorrei eseguire alcuni script durante l'avvio del contenitore finestra mobile. Attualmente ho uno script di shell per eseguire tutti i processi necessariComandi per eseguire il processo in background in Docker CMD

CMD [ "sh", "start.sh"]

Vorrei eseguire un comando shell con un processo in esecuzione in background esempio

CMD [ "sh", "-c", "mongod --dbpath/test &"]

+2

È possibile avviare il contenitore come un processo in background utilizzando '-d corsa docker {image}' E che cosa intendevi? – nottinhill

+1

mantra docker è di avviare un processo, anche se è possibile eseguire diversi con supervisore (vedi http://docs.docker.com/articles/using_supervisord/), s6, daemontools o così via. Perché vuoi il tuo processo in background? – user2915097

+0

Salve Desidero avviare un processo all'interno del contenitore finestra mobile come processo in background. Quindi attualmente sto citando lo stesso in un file di script di shell e creando un'immagine docker. Pertanto, quando eseguo l'immagine finestra mobile, il processo viene eseguito come previsto. Ma volevo invece di avere un file script di shell separato posso farlo nel file docker usando il comando CMD nel Dockerfile –

risposta

18

Oltre ai commenti sul tuo domanda che già sottolineato alcune cose su Docker best practice si potrebbe comunque iniziare una sfondo processo dall'interno dello script start.sh e mantenere quel start.sh script stesso in primo piano utilizzando il comando nohup e la e commerciale (&). Non ho provato con mongod ma qualcosa come il seguente nello script start.sh potuto lavorare:

#!/bin/sh 
... 
nohup sh -c mongod --dbpath /test & 
...