2015-08-07 29 views
6

Attualmente utilizziamo la combinazione di Ansible + Ansible Tower per distribuire ed eseguire le nostre applicazioni in contenitori Docker.Come avviare i contenitori Docker all'avvio, gestito con Ansible (Tower)

Tuttavia, mi chiedevo come eseguire automaticamente i contenitori distribuiti dopo il riavvio del sistema. Quale sarebbe la via per andare qui? L'unica soluzione che abbiamo trovato è quella di richiedere automaticamente l'URL di callback di Tower dei playbook di distribuzione dell'applicazione all'avvio, ma ciò sembra non ottimale.

risposta

5

È possibile utilizzare restart policies.

Non so come esattamente ansible crea contenitori. Ma in genere è possibile aggiungere un parametro sulla riga di comando come:

docker run --restart=always ... 
+0

Penso che questi si applicano solo ai riavvii dei contenitori quando si verifica un arresto anomalo di un contenitore, non quando si riavvia un intero server? O mi sbaglio? – Peter

+0

Quando un container si arresta in modo anomalo, esiste un'opzione esplicita '--restart = on-failure: 5'. Quando usi '--restart = always' il container sarà sempre avviato. – h3nrik

+0

Ha fatto dei test e hai ragione, grazie. Stavo partendo dal presupposto che l'argomento di riavvio della finestra mobile fosse solo per i fallimenti dei contenitori. L'equivalente di Ansible è 'restart_policy: always' – Peter

Problemi correlati