2017-05-26 1 views
1

Ich versuche ein Docker-Bild zu konfigurieren, so dass ein Benutzer "docker run image" eingeben kann und ein Fenster zur Auswahl der Eingabedatei geöffnet wird. Ich habe versucht, Tkinter beim Erstellen des Docker-Images zu verwenden, aber das Python-Skript ist beim Versuch, Tkinter zu laden, fehlerhaft.Docker Python Dateieingabeauswahl

Seit Tkinter hat ich zu einer normalen Eingabeabfrage mit wechsle einfach nicht versucht:

path= input('Input the file path:\n') 

Aber jetzt eine „EOFError: EOF, wenn eine Zeile zu lesen:“ Ich bin immer, wenn es um den Eingang bekommt () Linie.

Mein Dockerfile ist als

FROM python:3 
ADD script.py/
RUN pip install xlrd 
RUN pip install numpy 
RUN pip install matplotlib 
CMD [ "python", "./script.py" ] 

Irgendwelche Ideen folgt, warum dies geschieht? Ich bin sehr neu in der Verwendung von Docker, so würde jede Hilfe sehr geschätzt werden :)

Antwort

1

Sie müssen den Container mit docker run -ti image ausführen, um sicherzustellen, dass es im interaktiven Modus mit dem Terminal ausgeführt wird.

Das Ausführen von X11 GUI-Anwendungen ist ein wenig komplizierter, da Sie dem Container Zugriff auf Ihr Display geben müssen. This blog post beschreibt den Prozess in weiteren Einzelheiten.

+0

Erlaubt jetzt die Eingabe, aber es wird nicht erlaubt, dass matplotlib eine Anzeige für das Diagramm öffnet. – DLee

+0

@DLee Ich aktualisierte die Antwort mit einem Link, der hilfreich sein sollte. –

+0

Führen Sie 'xhost +' im Host aus und versuchen Sie Folgendes hinzuzufügen: '-e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix' zum' docker run'. –