Почему LaTeX-компилятор не может работать прямо на edge: путь от Cloudflare Workers до контейнера

Shipping a LaTeX Compiler Behind an Edge App

Почему LaTeX-компилятор не может работать прямо на edge: путь от Cloudflare Workers до контейнера

Автор строит трекер вакансий и хочет по описанию работы получать готовое PDF-резюме, написанное на LaTeX. API крутится на Cloudflare Workers, а Worker — это V8-изолят, где нет ни ОС, ни возможности запустить нативный бинарник вроде pdflatex. Компиляцию приходится выносить в отдельный контейнер с Tectonic, который подтягивает пакеты по требованию, сам делает нужное число проходов и по умолчанию отключает shell escape. Попутно разбираются реальные грабли: утечка токена через /proc/1/environ, path traversal в именах файлов и одна строка в Dockerfile, превратившая трёхсекундную сборку в минутный таймаут.

Всё, что может прочитать компилятор, может прочитать и документ. Поэтому в контейнере не должно быть ничего, что стоит читать.

Ещё за этот день

2026-10-21