Использование библиотеки pdfkit/wkhtmltopdf внутри контейнера Docker для приложения FlaskPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Использование библиотеки pdfkit/wkhtmltopdf внутри контейнера Docker для приложения Flask

Сообщение Гость »


Я создаю приложение Flask, которое использует библиотеку PDFkit для создания PDF-файла из строки HTML. При локальном запуске кода он работает нормально, однако когда я пытаюсь запустить его внутри контейнера Docker, возникает эта ошибка:

Ошибка ОС: исполняемый файл wkhtmltopdf не найден: «C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe»

Функция, используемая для создания PDF-файла, приведена ниже:

defgenerate_pdf_schedule(расписания): html_string = Schedule_to_html_string (расписания) config = pdfkit.configuration(wkhtmltopdf='C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe') pdf = pdfkit.from_string(html_string, Configuration=config) вернуть PDF Внутри этой функции html_string необходимо преобразовать в PDF-файл, при запуске генерируется вышеупомянутая ошибка.

Мой файл Dockerfile выглядит так:

ИЗ Python: последний ENV PYTHONНЕБУФЕРИРОВАННЫЙ 1 ENV PYTHONDONTWRITEBYTECODE 1 КОПИРОВАТЬ требования.txt ЗАПУСТИТЬ pip install -r требования.txt РАБОЧИЙ ПАРАМЕТР/приложение Я использую docker-compose.yml, поскольку у меня одновременно работает несколько контейнеров, мой файл docker-compose.yml:

услуги: редис: изображение: редис порты: - '6379:6379' сеть: строить: контекст: . среда: FLASK_APP: приложение ФЛАСК_ДЕБУГ: 1 объемы: - .:/приложение команда: запуск колбы -h 0.0.0.0 порты: - 5000:5000 сельдерей: строить: контекст: . среда: FLASK_APP: приложение объемы: - .:/приложение команда: celery -A app.celery worker --loglevel=info зависит от: - переделать Я новичок в Docker и программировании в целом, поэтому не смог разобраться в этом самостоятельно. Я попробовал несколько ответов на вопросы, похожие на этот. Самая большая проблема, похоже, заключается в корректировке ответов таким образом, чтобы они соответствовали моему проекту.

Некоторые вещи, которые я нашел в других вопросах, которые пробовал: Добавляем это в мой Dockerfile

# https://stackoverflow.com/a/62737156/152016 # Создаём образ на основе официального образа openjdk 8-jre-alpine из dockerhub ИЗ openjdk:8-jre-alpine # Установите wkhtmltopdf # https://stackoverflow.com/a/56925361/152016 ЗАПУСТИТЬ apk добавить --no-cache wkhtmltopdf ttf-dejavu ТОЧКА ВХОДА ["ш"] А это в моем файле docker-compose.yml:

версия: '3.8' услуги: wkhtmltopdf: изображение: wkhtmltopdf имя_контейнера: wkhtmltopdf строить: файл докеров: файл докеров контекст: . Однако, похоже, это не сработает, если я вытащу оба

ИЗ Python: последняя версия ИЗ openjdk:8-jre-alpine

Это приводит к тому, что либо pip не найден, либо apk не найден.

Как интегрировать pdfkit/wkhtmltopdf в мой проект?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Wkhtmltopdf с pdfkit: PDF пустой при ссылке на локальный файл CSS
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Служба Docker Flask: ModuleNotFoundError: при запуске контейнера нет модуля с именем «flask», но он работает вручную
    Anonymous » » в форуме Python
    1 Ответы
    38 Просмотры
    Последнее сообщение Гость
  • Wkhtmltopdf не работает с .net 8 и файлом Docker
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Wkhtmltopdf не работает с .net 8 и файлом Docker
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Преобразовать HTML в PDF с использованием WKHTMLTOPDF, Docker в ASP.NET Core
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»