Run the HTML to PDF converter in a container
EvoPdf Next runs in the official Microsoft ASP.NET Core images — mcr.microsoft.com/dotnet/aspnet:8.0 (Debian 12) and aspnet:10.0 (Ubuntu 24.04) — on x64 and ARM64, and in Windows containers. The demo application you download is ready to publish and run as a container. This page is the short version of the two documentation guides, with the Dockerfile as it appears there.
What containerizing the converter gives you
- Dependencies baked into the imageOne
apt-getline — libnss3, libatk-bridge2.0-0, libcairo2, libpango-1.0-0 — and the rendering runtime has everything it needs. No per-server setup. - Identical output from laptop to productionFonts, libraries and the Chromium-based runtime are frozen in the image, so a page that converts correctly in staging converts the same way everywhere.
- Scale conversions horizontallyPDF generation is CPU-bound and bursty. Run more containers when the queue grows, fewer when it doesn't — on Kubernetes, Azure Container Apps or a plain Docker host.
- An isolated rendering runtimeThe converter runs in the container's own filesystem and process space, with only the port you expose. Restarting or replacing it is one command.
- ARM64 in three linesPublish with
-r linux-arm64, point the twochmodlines atlinux-arm64, reference the ARM64 DLL. The base image is multi-architecture and picks the right one. - Push once, deploy from a registryAzure Container Registry, Docker Hub or a private registry — the guide covers publishing to ACR for Azure-based environments.
Publish, build, run
Three commands from the Linux folder of the downloaded package. The publish folder contains the application DLLs and the evopdf_runtimes directory; the Dockerfile sits next to it in the build context.
FROM mcr.microsoft.com/dotnet/aspnet:8.0 # Install EvoPdf dependencies RUN apt-get update && \ apt-get install -y libnss3 libatk-bridge2.0-0 \ libcairo2 libpango-1.0-0 && \ rm -rf /var/lib/apt/lists/* WORKDIR /app # Copy the published ASP.NET Core app (DLLs + evopdf_runtimes/) COPY publish/ . # Execute permissions for the EvoPdf Next native runtimes RUN chmod +x /app/evopdf_runtimes/linux-x64/native/evopdf_loadhtml RUN chmod +x /app/evopdf_runtimes/linux-x64/native/evopdf_pdfprocessor EXPOSE 27101 ENV ASPNETCORE_URLS=http://+:27101 ENTRYPOINT ["dotnet", "EvoPdf_Next_AspNetDemo_Linux.dll"]
Open http://localhost:27101 and you have the complete demo application — every HTML to PDF sample, Word, Excel, PDF creation and text extraction — running inside the container.
Other base images
The same Dockerfile works with aspnet:10.0 (Ubuntu 24.04, .NET 10) and aspnet:8.0-jammy (Ubuntu 22.04); only the FROM line changes. Any distribution with the ASP.NET Core runtime preinstalled and the four packages available will do.
Linux ARM64
Publish with -r linux-arm64 from EvoPdf_Next_AspNetDemo_Linux.Arm64.csproj, point the two chmod lines at evopdf_runtimes/linux-arm64/native/, and reference EvoPdf_Next_AspNetDemo_Linux.Arm64.dll in the entrypoint. The base image is multi-architecture and selects the matching build on the host.
Same idea on Windows Server
The Windows demo application publishes the same way and runs in Windows containers based on the Microsoft ASP.NET Core images for Windows Server. No apt packages, no chmod — the runtime needs nothing beyond the published folder. The Windows guide has the complete Dockerfile and commands.
Push once, run anywhere
Push the image to Azure Container Registry, Docker Hub or a private registry and run it from Azure Container Apps, AKS, App Service for Containers, or any Kubernetes cluster. For Azure without containers, see the App Service and Azure Functions guides.
Try it in a container in ten minutes
Download the demo application, publish the Linux project, build with the Dockerfile above. The demo runs without a license key, with a stamp on the output.