Запуск Tkinter в контейнере docker

#python #docker #tkinter

#python #docker #tkinter

Вопрос:

Я новичок в использовании docker, и в настоящее время я изучаю, как создать образ docker и запустить его. Мне успешно удалось создать свой образ 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:

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

Requirements.txt:

 gspread
oauth2client
fpdf
networkx
  

Я пытаюсь запустить приложение Tkinter в docker. Как я могу это решить? Любая помощь была бы очень признательна. Спасибо!

Комментарии:

1. Запуск интерактивных приложений с графическим интерфейсом сложно настроить, и они вообще работают только на некоторых определенных платформах. Вероятно, вы обнаружите, что это намного проще запустить без участия Docker, возможно, в виртуальной среде Python.

Ответ №1:

Похоже, package tk отсутствует, надеюсь, это решит вашу проблему. Установите tk пакет для alpine из вашего файла Dockerfile. Измените свой файл dockerfile, чтобы установить его, как показано ниже,

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

Если все еще отсутствуют какие-либо пакеты, просто добавьте их с помощью RUN apk add <package1> <package2>

Комментарии:

1. Вы уверены, что это работает? Моя последующая команда docker run -e DISPLAY=$DISPLAY --net=host image_name python -m tkinter закончилась с ошибкой $? как 139. Даже при переключении на FROM python:3-alpine результаты те же. Как мне отлаживать? Кстати, FROM python:3-slim amp; RUN apt install python3-tk будет работать просто отлично.

Ответ №2:

У меня была похожая проблема, и единственное, что ее исправило, — это установка tkinter с помощью следующего: ЗАПУСТИТЕ apk update amp;amp; apk add tk

Комментарии:

1. Это ничего не добавляет к существующему ответу.