This is a very simple Dockerfile based on Alpine Linux. It creates a very small (105MB+) weasyprint service. It uses a wsgi server by aquavitae to provide weasyprint as a web service.
A sample docker-compose configuration is as follows:
services:
weasyprint:
build: .
ports:
- '5001:5001'
command: ["uwsgi", "--http-socket", "0.0.0.0:5001", "--module", "wsgi:application", "--show-config"]
To use, POST some HTML to localhost:5001/pdf. The response will be a rendered pdf file.
A GET to localhost:5001/health should result in an ok response.
A GET to localhost:5001/version should output the weasyprint version (currently 0.39).
In order to make fonts available to weasyprint, simply copy them into ./fonts and build the image.