IronPDF auf Linux ARM64 in Docker ausführen

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

Der Renderer von IronPDF basiert auf dem Chromium Embedded Framework (CEF), das mehr Thread-Local Storage (TLS) benötigt, als der Linux-Dynamik-Loader standardmäßig auf ARM und ARM64 reserviert. Ohne einen Workaround schlägt das Laden von libcef.so mit cannot allocate memory in static TLS block fehl. Die Lösung besteht darin, libcef.so über die LD_PRELOAD-Umgebungsvariable vorzubereiten, damit der Loader genügend TLS reserviert, bevor etwas anderes geladen wird.

Für die nackte Fehlermeldung und die nicht Docker Lösung siehe IronPDF auf Linux ARM: kann den Speicher im statischen TLS-Block nicht zuweisen. Dieser Artikel wendet die gleiche Lösung innerhalb eines Containers an.

LD_PRELOAD in der Dockerfile setzen

Fügen Sie die Variable als ENV-Anweisung hinzu, die auf die ARM64-Native-Bibliothek zeigt, die mit IronPDF geliefert wird:

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

Beispiel Dockerfile

Diese mehrstufige Dockerfile baut und führt eine IronPDF-App auf .NET 8 für ARM64 aus, installiert die nativen Bibliotheken, von denen CEF abhängt, und setzt LD_PRELOAD im endgültigen Image:

# 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"]

Setzen Sie LD_PRELOAD auf den Pfad, wo libcef.so tatsächlich in Ihrem Image landet; der oben genannte Wert entspricht dem Standard-runtimes/linux-arm64/native/-Layout. Die zugrundeliegende Einschränkung wird im CEF Forum verfolgt.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 20,296,129 | Version: 2026.7 gerade veröffentlicht
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronPdf
Führen Sie eine Probe aus Sehen Sie zu, wie Ihr HTML-Code in eine PDF-Datei umgewandelt wird.