Не работали матплотлиб и ездхф ставим библиотеки при сборке образа
All checks were successful
Deploy MES Core / deploy (push) Successful in 3m7s

This commit is contained in:
2026-04-03 02:08:46 +03:00
parent 1fe05d41f6
commit 9ad109e02a
2 changed files with 9 additions and 2 deletions

View File

@@ -16,7 +16,10 @@ ENV PYTHONUNBUFFERED=1
# gcc и libpq-dev — необходимы для сборки библиотеки psycopg2 (драйвер для Postgres).
# rm -rf /var/lib/apt/lists/* — удаляем кэш установщика, чтобы уменьшить размер образа.
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libpq-dev && rm -rf /var/lib/apt/lists/*
gcc libpq-dev \
libfreetype6 libpng16-16 \
fonts-dejavu-core \
&& rm -rf /var/lib/apt/lists/*
# Сначала копируем только список зависимостей.
# Это нужно для "кэширования слоев": если ты не менял библиотеки, Docker не будет переустанавливать их заново при сборке.

View File

@@ -70,7 +70,11 @@ def _render_dxf_preview_png(
from ezdxf.addons.drawing.matplotlib import MatplotlibBackend
from ezdxf.addons.drawing import config as draw_config
except Exception as e:
raise RuntimeError('Не установлены зависимости для превью DXF: ezdxf и matplotlib') from e
# Важно: сюда попадают не только «пакет не установлен», но и ошибки импорта из-за системных библиотек
# (например, не хватает freetype/png в slim-образе). Поэтому сохраняем первопричину в тексте исключения.
raise RuntimeError(
f"Не удалось импортировать зависимости для превью DXF (ezdxf/matplotlib): {type(e).__name__}: {e}"
) from e
if not dxf_path or not os.path.exists(dxf_path):
raise FileNotFoundError('DXF файл не найден')