Cloudflare Workers는 PDF를 만들 수 없다: LaTeX 컴파일러를 컨테이너로 옮긴 이유
Shipping a LaTeX Compiler Behind an Edge App

Cloudflare Workers는 V8 isolate라 네이티브 TeX 엔진을 실행할 수 없어, LaTeX 컴파일을 별도 컨테이너 서비스로 분리했다. Tectonic은 필요한 패키지만 받아오고 shell escape가 기본 꺼져 있어 안전하다. 하지만 문서가 /proc/1/environ을 읽어 서비스 토큰을 로그로 출력할 수 있다는 구멍을 발견해, 환경 변수를 초기화하고 토큰을 stdin으로 전달하도록 고쳤다. Dockerfile 한 줄이 3초 컴파일을 60초 타임아웃으로 만든 이야기까지 담았다.
컴파일러가 읽을 수 있는 것은 문서도 읽을 수 있다. 그래서 컨테이너 안에는 읽을 가치가 있는 것을 두면 안 된다.