2016-01-18 5 views
6

Ich versuche, ein Jupiter-Notebook im Hintergrund zu laufen, ohne irgendetwas auf der Konsole zu drucken. Ich fand diese Lösung in einem question für bash:Run Jupyter Notebook im Hintergrund auf Docker

jupyter notebook &> /dev/null &

Aber ich bin mit jupyter in einem Docker-Containern und will es über CMD im Hintergrund zu starten. Wie kann ich das gleiche in SH machen?

+0

Bisher kenne ich keinen Weg und die Dokumente sehen nicht, dass das standardmäßig möglich ist. Ihre Lösung sollte jedoch funktionieren, indem Sie diese Zeile in der CMD-Zeile in Docker hinzufügen. – Ivan

+0

danke @Ivan das Problem ist, dass Docker CMD-Befehle in sh, nicht in bash ausgeführt und es scheint nicht den gleichen Effekt in SH haben. – MrLoh

Antwort

4

Ich habe es aus mit dem Setup zu arbeiten:
https://github.com/jupyter/docker-stacks/tree/master/minimal-notebook

der Trick war tini zu installieren und den folgenden Code in ein start-notebook.sh Skript setzen:

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

dies als hinzugefügt, um den Weg mit:
COPY start-notebook.sh /usr/local/bin/ und
RUN chmod +x /usr/local/bin/start-notebook.sh

Dann könnte ich gesetzt CMD ["start-notebook.sh"] starten Sie den Container mit Jupyter läuft im Hintergrund beim Start.

+0

Können Sie erklären, was das '&>/dev/null &' tut? besonders die zwei '&' Symbole? – Nick

+0

Es stellt sicher, dass die Logs nicht auf 'stdout' gedruckt werden, sondern in' dev/null' umgeleitet werden und dass das Terminal nicht mit Jupiter blockiert wird, sondern dass jupyter gerade als Hintergrundprozess abgefeuert wird. Probieren Sie es einfach aus. – MrLoh

+0

Oh, das '&>' ist eine Magie. Vielen Dank! – Nick

0

Sie können das tun, die unter Befehl

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

Ausführung Sie können die Warnung, dass jupyter Befehl benötigt --allow-root Option sehen, wenn Sie jupyter notebook Befehl als root in einem Behälter Docker auszuführen.