2016-03-05 18 views
5

Sto provando a creare il contenitore docker utilizzando dockerfile dove script-entry.sh deve essere eseguito all'avvio dei contenitori e script-exit.sh da eseguire quando il contenitore si arresta.Esegui uno script quando la finestra mobile è ferma

ENTRYPOINT ha aiutato a realizzare la prima parte del problema in cui script-entry.sh viene eseguito all'avvio.

Come faccio a essere sicuro che lo script-exit.sh venga eseguito su docker exit/stop?

+0

Il daemon Docker registra tutto, perché non scrive uno script/programma che analizza i registri e, quando appare lo stop containerID pari, esegue lo script che si desidera. – Auzias

+0

@Auzias C'è un [evento api] (https://gliderlabs.com/blog/2015/04/14/docker-events-explained/) e un ['eventi'] (https: //docs.docker. com/engine/reference/commandline/events /) comando incorporato nella finestra mobile che sarebbe più adatto per attività come quella – Matt

+0

@Auzias che esegue anche qualcosa dopo l'evento stop probabilmente non sarà in grado di essere eseguito o interrotto. – Matt

risposta

8

docker stop invia un segnale SIGTERM al processo principale in esecuzione all'interno del contenitore Docker (lo script di immissione). Quindi è necessario un modo per catturare il segnale e quindi attivare lo script di uscita.

Vedi This link per la spiegazione su cattura del segnale ed un esempio (vicino alla fine della pagina)

0

creare uno script, e salvarlo come un file bash, che contiene che segue:

$CONTAINER_NAME="someNameHere" 
docker exec -it $CONTAINER_NAME bash -c "sh script-exit.sh" 
docker stop $CONTAINER_NAME 

Esegui quel file invece di eseguire docker stop e quello dovrebbe fare il trucco. Puoi anche impostare un alias per questo.

Per quanto riguarda l'automazione all'interno del Docker stesso, non l'ho mai visto prima. Buona fortuna a comprenderlo, se questa è la strada che vuoi intraprendere.

+3

Non risponde alla domanda. La domanda è: "come eseguire uno script dopo l'arresto di un contenitore", che è diverso da "come eseguire uno script e quindi interrompere il contenitore" – Auzias

Problemi correlati