Невозможно отобразить PDF с помощью библиотеки migrado c, когда приложение работает в контейнере docker - PullRequest
0 голосов
/ 26 марта 2020

Я сталкиваюсь с проблемами при попытке развернуть контейнер на основе Linux с. Net Core 3.0 с моим приложением. Одна из его функций - отправлять периодические отчеты в формате PDF, но сам рендеринг не выполняется.

Для рендеринга PDF-файла я использую пакет MigraDo c, это зависит от System.Drawing.Common.

Мой контейнер имеет все необходимые зависимости, необходимые для базового образа на основе debian для поддержки System.Drawing.Common.

# install System.Drawing native dependencies
RUN apt-get update \
&& apt-get install -y --allow-unauthenticated \
    libc6-dev \
    libgdiplus \
    libx11-dev \
    xvfb \
    libfontconfig \
 && rm -rf /var/lib/apt/lists/*

Исключение, которое я получаю: Could not open display (X-Server required. Check your DISPLAY environment variable)

Я пытался настроить виртуальный фрейм-буфер через Xvfb, но как бы я его ни настраивал asp. net ядро ​​не может открыть необходимое виртуальное устройство. Итак, я попытался:

  • запустить Xvfb внутри docker контейнера, чтобы запустить буфер как устройство: 99.0 RUN Xvfb :99 -screen 0 1024x768x16 &, а затем установить переменную среды ENV DISPLAY=:99.0

  • запуск Xvfb на хост-машине и передача переменной DISPLAY в docker контейнер

  • запуск отображения с использованием startx -- `which Xvfb` :99 -screen 0 1024x768x24 внутри контейнера

  • запуск отображения с использованием startx -- `which Xvfb` :99 -screen 0 1024x768x24 вне контейнера и передача его в качестве переменной среды

Я не имею ни малейшего представления, как решить эту проблему, кроме как вытянуть migrado c и переписать его, чтобы использовать какую-то вменяемую графическую библиотеку (что, к сожалению, не подлежит обсуждению, несмотря на то, как это было бы весело)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...