Docker'da Linux ARM64 üzerinde IronPDF Çalıştırma

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

IronPDF'nin işleyicisi, Chromium Embedded Framework (CEF) üzerine kurulmuştur ve bu, ARM ve ARM64'te Linux dinamik bağlayıcısının varsayılan olarak ayırdığından daha fazla Thread Local Storage (TLS) gerektirir. Bir çözüm olmadan, libcef.so yükleme işlemi cannot allocate memory in static TLS block ile başarısız olur. Çözüm, bağlayıcının başka bir şey yüklemeden önce yeterli TLS ayırabilmesi için libcef.so önceden yüklenmesi ve LD_PRELOAD ortam değişkeni üzerinden gerçekleştirilmesidir.

Temel hata mesajı ve Docker olmayan düzeltme için, IronPDF Linux ARM: statik TLS bloğunda bellek tahsis edilemiyor sayfasına bakın. Bu makale, bir kapsayıcı içinde aynı düzeltmeyi uygular.

Dockerfile İçinde LD_PRELOAD Ayarlama

Değişkeni, IronPDF ile birlikte gelen ARM64 yerel kütüphanesini işaret eden bir ENV talimatı olarak ekleyin:

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

Örnek Dockerfile

Bu çok aşamalı Dockerfile, ARM64 için .NET 8 üzerinde bir IronPDF uygulaması oluşturur ve çalıştırır, CEF'in bağlı olduğu yerel kütüphaneleri kurar ve son görüntüde LD_PRELOAD ayarlar:

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

LD_PRELOAD, libcef.so fiilen görüntünüze ulaştığı yola ayarlayın; yukarıdaki değer, varsayılan runtimes/linux-arm64/native/ düzeniyle eşleşir. Temel sınırlama CEF Forum'da takip edilmektedir.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 20,296,129 | Sürüm: 2026.7 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.