2015-02-19 21 views
12

Próbuję wykonać sprawdzanie składni skryptu upstart przy użyciu init-checkconf. Jednak po uruchomieniu go zwraca ERROR: version of /sbin/initctl too old.initctl zbyt stary test sprawdzania dostępności

Nie mam pojęcia, co robić, próbowałem zainstalować ponownie, ale nic się nie zmienia. Jest on uruchamiany z poziomu kontenera dokera (ubuntu: 14.04), który może mieć z tym coś wspólnego.

+0

Próbował pan robi 'apt-get update' przed ponowną instalacją? –

+0

Zrobiłem, zaktualizować, zaktualizować, a następnie ponownie zainstalować nadal ten sam błąd. – lochlanna

+0

Czy znalazłeś rozwiązanie? – ogur

Odpowiedz

8

Po prostu wpadłem na ten sam problem.

Patrząc w pojemniku:

[email protected]:/# cat /sbin/initctl 
#!/bin/sh 
exit 0 

Nie testowałem go jeszcze całkowicie, ale dodaje następujące do mojego Dockerfile:

# Fix upstart 
RUN rm -rf /sbin/initctl && ln -s /sbin/initctl.distrib /sbin/initctl 

Myślałem this Link wyjaśnił to bardzo dobre:

Po uruchomieniu kontenera Docker uruchamiane jest tylko polecenie CMD. Jedyne procesy, które będą działać wewnątrz kontenera, to polecenie CMD i wszystkie procesy, które on spawns. Dlatego wszystkie ważne usługi systemowe nie są uruchamiane automatycznie - trzeba je uruchamiać samodzielnie.

Kopanie wokół trochę więcej, znalazłem oficjalny obraz Ubuntu zawierający wersję roboczą nowobogackich: https://registry.hub.docker.com/_/ubuntu-upstart/