Run IronPDF on Linux ARM64 in Docker
El renderizador de IronPDF está construido sobre el Chromium Embedded Framework (CEF), que necesita más Thread Local Storage (TLS) de lo que el enlazador dinámico de Linux reserva por defecto en ARM y ARM64. Sin una solución, cargar libcef.so falla con cannot allocate memory in static TLS block. La solución es precargar libcef.so a través de la variable de entorno LD_PRELOAD para que el enlazador reserve suficiente TLS antes de que cualquier otra cosa cargue.
Para el mensaje de error puro y la solución no Docker, consulta IronPDF en Linux ARM: no puede asignar memoria en el bloque de TLS estático. Este artículo aplica la misma solución dentro de un contenedor.
Establece LD_PRELOAD en el Dockerfile
Agregue la variable como una instrucción ENV apuntando a la biblioteca nativa ARM64 que se envía con IronPDF:
ENV LD_PRELOAD=/app/runtimes/linux-arm64/native/libcef.so
Dockerfile de Ejemplo
Este Dockerfile de múltiples etapas construye y ejecuta una aplicación de IronPDF en .NET 8 para ARM64, instala las bibliotecas nativas de las que depende CEF, y establece LD_PRELOAD en la imagen 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"]
Establezca LD_PRELOAD en la ruta donde libcef.so realmente se encuentra en su imagen; el valor anterior coincide con el diseño predeterminado de runtimes/linux-arm64/native/. La limitación subyacente se sigue en el Foro de CEF.

