Executar IronPDF em Linux ARM64 no Docker

This article was translated from English: Does it need improvement?
Translated
View the article in English

O renderizador do IronPDF é baseado no Chromium Embedded Framework (CEF), que necessita de mais Thread Local Storage (TLS) do que o linker dinâmico do Linux reserva por padrão em ARM e ARM64. Sem uma solução, carregar libcef.so falha com cannot allocate memory in static TLS block. A correção é pré-carregar libcef.so através da variável de ambiente LD_PRELOAD para que o linker reserve TLS suficiente antes que qualquer outra coisa seja carregada.

Para a mensagem de erro pura e a correção não-Docker, veja IronPDF no Linux ARM: não é possível alocar memória no bloco TLS estático. Este artigo aplica a mesma correção dentro de um contêiner.

Definir LD_PRELOAD no Dockerfile

Adicione a variável como uma instrução ENV apontando para a biblioteca nativa ARM64 que acompanha o IronPDF:

ENV LD_PRELOAD=/app/runtimes/linux-arm64/native/libcef.so

Dockerfile de exemplo

Este Dockerfile de múltiplos estágios compila e executa um app do IronPDF no .NET 8 para ARM64, instala as bibliotecas nativas das quais o CEF depende e configura LD_PRELOAD na imagem final:

# Base image for runtime (ARM64)
FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
USER root
WORKDIR /app
RUN apt update \
    && apt install -y sudo libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev
# Base image for build (ARM64)
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY . .
RUN dotnet publish -c Release -o /app/publish
# Final image with IronPdf and system dependencies
FROM base AS final
WORKDIR /app
ENV LD_PRELOAD=/app/runtimes/linux-arm64/native/libcef.so
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "IronPdfLinuxArm.dll"]

Defina LD_PRELOAD para o caminho onde libcef.so realmente cai na sua imagem; o valor acima corresponde ao layout padrão runtimes/linux-arm64/native/. A limitação subjacente é rastreada no Fórum CEF.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 20,296,129 | Versão: 2026.7 recém-lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.