@bybacapitan

Как установить ImageMagick в Docker?

Как мне правильно установить ImageMagick в докере?
В коде нужно использовать библиотеку Wand
from wand.image import Image
Устанавливаю так
RUN apt-get update && apt-get install -y libmagickwand-dev

Все проходит без ошибок но при запуске контейнера получаю это
spoiler
Traceback (most recent call last):
  File "/opt/venv/lib/python3.9/site-packages/wand/api.py", line 154, in <module>
    libraries = load_library()
  File "/opt/venv/lib/python3.9/site-packages/wand/api.py", line 143, in load_library
    raise IOError('cannot find library; tried paths: ' + repr(tried_paths))
OSError: cannot find library; tried paths: []

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/app/bot/__main__.py", line 1, in <module>
    from wand.image import Image
  File "/opt/venv/lib/python3.9/site-packages/wand/image.py", line 18, in <module>
    from . import assertions
  File "/opt/venv/lib/python3.9/site-packages/wand/assertions.py", line 155, in <module>
    from .color import Color  # noqa: E402
  File "/opt/venv/lib/python3.9/site-packages/wand/color.py", line 10, in <module>
    from .api import library
  File "/opt/venv/lib/python3.9/site-packages/wand/api.py", line 178, in <module>
    raise ImportError('MagickWand shared library not found.\n'
ImportError: MagickWand shared library not found.
You probably had not installed ImageMagick library.
Try to install:
  https://docs.wand-py.org/en/latest/guide/install.html

Что с этим делать?
  • Вопрос задан
  • 267 просмотров
Пригласить эксперта
Ответы на вопрос 1
gnifajio
@gnifajio
Совершенствуюсь каждый день
Чтобы установить ImageMagick в Docker-контейнере и использовать его с помощью библиотеки Wand в Python, вы можете следовать этим шагам:

  • Создайте файл Dockerfile со следующим содержимым:


FROM python:3.8

# Устанавливаем ImageMagick
RUN apt-get update && apt-get install -y imagemagick

# Копируем ваш проект в контейнер
COPY . /app

# Устанавливаем зависимости из requirements.txt
RUN pip install -r /app/requirements.txt

# Устанавливаем рабочую директорию
WORKDIR /app

# Запускаем ваш код
CMD ["python", "main.py"]

  • Добавьте в файл requirements.txt зависимость от библиотеки Wand.

  • Соберите образ Docker, выполнив следующую команду в терминале:

docker build -t imagemagick .
Это создаст Docker-образ с именем "imagemagick", содержащий Python и ImageMagick.

  • Запустите контейнер, выполнив следующую команду:

docker run -it imagemagick
Теперь вы можете использовать библиотеку Wand в вашем Python-коде
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы