2016-01-18 47 views
6

Próbuję uruchomić notatnik jupytera w tle bez drukowania czegokolwiek na konsoli. Znalazłem rozwiązanie w question dla bash:Uruchom notatnik Jupytera w tle na porcie dokowania

jupyter notebook &> /dev/null &

Ale używam jupyter w pojemniku Döcker i chcesz go uruchomić w tle poprzez CMD. Jak mogę zrobić to samo w sh?

+0

Do tej pory nie wiem sposób, a dokumenty nie wskazują, że jest to możliwe domyślnie. Twoje rozwiązanie powinno jednak działać, dodając tę ​​linię na linii CMD w Dockerze. – Ivan

+0

dzięki @Ivan problem polega na tym, że docker uruchamia polecenia CMD w sh, a nie w bash i nie wydaje się, że ma taki sam efekt w sh. – MrLoh

Odpowiedz

4

Dostałem go do pracy przy użyciu konfiguracji z:
https://github.com/jupyter/docker-stacks/tree/master/minimal-notebook

Sztuką było zainstalowanie Tini i umieścić następujący kod w start-notebook.sh skryptu:

#!/bin/bash 
exec jupyter notebook &> /dev/null & 

niż jest to dodane do ścieżki z:
COPY start-notebook.sh /usr/local/bin/ i
RUN chmod +x /usr/local/bin/start-notebook.sh

Wtedy mógłbym ustawić CMD ["start-notebook.sh"], aby uruchomić kontener z jowerem działającym w tle na starcie.

+0

Czy możesz wyjaśnić, co robi '&>/dev/null &'? szczególnie dwa symbole "i"? – Nick

+0

Zapewnia to, że dzienniki nie są drukowane na 'stdout', ale przekierowywane są do' dev/null' i że terminal nie jest blokowany przez Jupitera, ale to, że jowery jest właśnie uruchamiane jako proces w tle. Po prostu spróbuj. – MrLoh

+0

Och, '&>' to magia. Dzięki! – Nick

0

Można to zrobić, wykonując komenda niżej

jupyter notebook --allow-root &> /dev/null & 

może pojawić się ostrzeżenie, że komenda jupyter potrzebuje --allow-root opcję jeśli jupyter notebook polecenie wykonać jako root w pojemniku Döcker.