简体   繁体   English

在 docker 容器上运行 Tkinter

[英]Running Tkinter on docker container

I am new to using docker and I am currently learning how to build a docker image and run it.我是使用 docker 的新手,目前正在学习如何构建 docker 映像并运行它。 I successfully managed to build my docker image, however, I am getting this error when running the image:我成功地构建了我的 docker 映像,但是,运行映像时出现此错误:

Traceback (most recent call last):
  File "gui.py", line 1, in <module>
    import tkinter as tk
  File "/usr/local/lib/python3.7/tkinter/__init__.py", line 36, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ImportError: Error loading shared library libtk8.6.so: No such file or directory (needed by /usr/local/lib/python3.7/lib-dynload/_tkinter.cpython-37m-x86_64-linux-gnu.so)

Dockerfile: Dockerfile:

FROM python:alpine3.8 
COPY . /app
WORKDIR /app
RUN pip3 install -r requirements.txt 
ENTRYPOINT [ "python3" ] 
CMD [ "gui.py" ] 

Requirements.txt:要求.txt:

gspread
oauth2client
fpdf
networkx

I am trying to run a Tkinter app in docker.我正在尝试在 docker 中运行 Tkinter 应用程序。 How can I resolve this?我该如何解决这个问题? Any help would be really appreciated.任何帮助将非常感激。 Thanks!谢谢!

Looks like package tk is missing, hope this solves your problem.看起来package tk丢失了,希望这能解决您的问题。 Install tk package for alpine from your Dockerfile.从 Dockerfile 为alpine安装tk包。 Modify your dockerfile to install it like below,修改您的 dockerfile 以如下安装它,

FROM python:alpine3.8 
COPY . /app
WORKDIR /app
RUN apk update && apk add tk
RUN pip3 install -r requirements.txt 
ENTRYPOINT [ "python3" ] 
CMD [ "gui.py" ] 

If still there are any missing packages just add them using RUN apk add <package1> <package2>如果仍然有任何丢失的包,只需使用RUN apk add <package1> <package2>添加它们

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM