2015-01-20 14 views
7

Sto provando a lanciare un sistema nella finestra mobile che ha molti servizi init e upstart e ottengo questo errore.Servizi in esecuzione (upstart/init.d) in un contenitore

initctl: Unable to connect to Upstart: 
Failed to connect to socket /com/ubuntu/upstart: Connection refused 

Tutte le soluzioni alternative suggeriscono fare un hard link a/bin/true per mettere a tacere l'errore. Ma ho bisogno di avere questi servizi gestiti da upstart per riavvio-abilità e per upstart emettere eventi per funzionare ...

Come sembra che la finestra mobile non supporti questo, sto considerando il grosso trucco di scrivere uno script da avviare tutti i servizi in /etc/rcX.d e tiene traccia dei PID. Ciò non risolve la mancanza di eventi di emissione da parte di Upstart.

Altre idee su come avviare i processi di upstart nella finestra mobile?

+1

La filosofia della finestra mobile è quello di eseguire un processo, se si desidera eseguire diversi, hanno uno sguardo al supervisore https://docs.docker.com/articles/using_supervisord/~~V~~singular~~3rd – user2915097

+0

supervisore sembra per lo più equivalente, se non un sottoinsieme, di upstart, ma grazie per il puntatore; potrebbe essere necessario. Dato un ampio sistema legacy di script di init, non è ideale per convertirli e non è fattibile per eseguirli come singoli dockers. –

risposta

3

Dovresti essere in grado di farlo. In realtà non è il modo "Docker Way", ma è molto possibile. Potresti considerare semplicemente di utilizzare l'immagine di base phusion/baseimage, ha il supporto per runit integrato. Se preferisci usare upstart, guarda solo come hanno implementato il punto di accesso, /sbin/myinit, e poi segui.

11

Sfortunatamente, l'upstart non funziona all'interno di un contenitore di finestra mobile poiché fa un po 'di magia con il sistema di init.

Questo issue spiega:

Se l'applicazione utilizza upstart, questo voleva adattano bene nelle immagini docker nude, e ancora di più se si deviano/sbin/init o /sbin/initctl a qualcosa come/bin/true o/dev/null. L'applicazione può utilizzare il servizio per avviarsi se questo ha un codice di sistema V inexcript e se il comando initctl non è stato deviato.

Nel caso di sale-minion, su ubuntu la confezione utilizza un lavoro di avviamento e nessun script di init classico, quindi è normale che non inizi nei in entrambi i casi.

E this one dice:

Perché Docker sostituisce l'/ sbin/init di default con il proprio, non c'è alcun modo per eseguire l'Upstart init all'interno di un contenitore Docker.

Problemi correlati