2017-05-09 21 views
3

我刚刚开始使用docker,并且仍然在使用中苦苦挣扎。我有一个Python简单的Python应用程序,它使用Matplotlib来生成一些简单的图形。目前,我有以下Dockerfile:如何在简单的dockerized Python应用程序中显示输出?

FROM python:2 

COPY requirements.txt/ 
RUN pip install --requirement requirements.txt 
COPY my_code.py/

CMD [ "python", "./my_code.py" ] 

然而,这产生了以下错误:

Traceback (most recent call last): 
    File "./fraud_detection_sample_code.py", line 161, in <module> 
    plt.figure(1) 
    File "/usr/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 535, in figure 
    **kwargs) 
    File "/usr/local/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 81, in new_figure_manager 
    return new_figure_manager_given_figure(num, figure) 
    File "/usr/local/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 89, in new_figure_manager_given_figure 
    window = Tk.Tk() 
    File "/usr/local/lib/python2.7/lib-tk/Tkinter.py", line 1820, in __init__ 
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) 
_tkinter.TclError: no display name and no $DISPLAY environment variable 

什么是解决这个的最好方法?我的方法有可能吗?

+0

Docker并不意味着这种用例。 – Smit

+0

在这种情况下,你会如何对这样的应用程序进行dockerize?或者它根本不可能? – hY8vVpf3tyR57Xib

+0

问题是,当用户群增长时,docker需要在多个VM上部署和扩展您的应用程序。 Dockerizing只是通过命令行显示输出的python脚本没有任何意义。 – Smit

回答

0

你能测试吗?

docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix your_image_name 

它在一个类似的项目为我工作。来自here的想法

相关问题