Ausführen von IronPDF unter Linux: Anleitung zur Einrichtung

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

IronPDF für Linux ist etwa 280 MB groß(einschließlich des IronPDF-Codes und des gesamten Chrome-Browsers). Docker-Images sind etwa 500 MB groß.

Chrome benötigt außerdem einige grundlegende Pakete, die je nach Linux-Distribution variieren. Die meisten Linux-Distributionen haben diese Pakete bereits installiert, da sie von verschiedenen Anwendungen und Bibliotheken unter Linux verwendet werden.

Wenn Sie jedoch eine Barebone-Distribution verwenden, müssen Sie die erforderlichen Linux-Pakete installieren, damit Chrome unter Linux läuft.

Hinweis: Um die Fehlersuche zu erleichtern, können Sie diese Einstellungen vornehmen:

IronPdf.Logging.Logger.EnableDebugging = true;
IronPdf.Logging.Logger.LogFilePath = "Default.log";
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
IronPdf.Logging.Logger.EnableDebugging = true;
IronPdf.Logging.Logger.LogFilePath = "Default.log";
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
IronPdf.Logging.Logger.EnableDebugging = True
IronPdf.Logging.Logger.LogFilePath = "Default.log"
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All
VB   C#

Wie man ein kleineres Docker-Image erstellt

1. Installieren von Paketen zur Laufzeit

Eine Möglichkeit, die Größe zu reduzieren, ist die Ausführung von "apt-get"-Befehlen zur Laufzeit und nicht beim Erstellen des Docker-Images:

  1. Entfernen Sie apt-get-Befehle aus Ihrem Dockerfile

  2. Setzen Sie Installation.LinuxAndDockerDependenciesAutoConfig = true; bevor Sie IronPDF initialisieren oder ein Dokument rendern

  3. Stellen Sie sicher, dass Ihre Anwendung mit ausreichenden Rechten ausgeführt wird, um apt-get-Befehle auszuführen

    Hinweis: Ihre erste Initialisierung wird langsamer sein, da die apt-get-Befehle beendet werden müssen, bevor das erste Dokument gerendert wird, und dieser Prozess wird jedes Mal wiederholt, wenn Sie das Bild erneut bereitstellen müssen

    Hinweis: Sie sollten Konsolen-/Protokolleinträge sehen, die die erfolgreiche Installation von Paketen anzeigen:

Executing command 'apt install -y libnss3' in '/app/bin/Debug/netcoreapp3.1/runtimes/linux-x64/native'
    Reading package lists...
    Building dependency tree...
    Reading state information...
    The following additional packages will be installed:
      libnspr4
    The following NEW packages will be installed:
      libnspr4 libnss3
    0 upgraded, 2 newly installed, 0 to remove and 9 not upgraded.

2. IronPDF.Slim verwenden

Sie können sich auch dafür entscheiden, IronPDF.dll _nur _einzubeziehen und die erforderlichen Dateien zur Laufzeit herunterzuladen.

  1. ironPDF.Linux entfernen(und jedes andere IronPDF) nuget-Paket(s) aus Ihrem Projekt, und fügen Sie IronPDF.Slim

  2. setzen Sie Installation.AutomaticallyDownloadNativeBinaries = true; bevor Sie IronPDF initialisieren oder ein Dokument rendern

  3. Stellen Sie sicher, dass Ihr Dockerfile Lese- und Schreibrechte für das gesamte Arbeitsverzeichnis Ihrer Anwendung gewährt(z.B. ändern Sie RUN chmod +rwx /app/runtimes/linux-x64/native/IronCefSubprocess in RUN chmod +rwx /app/)

    Hinweis: Die erste Initialisierung wird langsamer sein, da das Nuget-Paket heruntergeladen und extrahiert wird, bevor das erste Dokument gerendert wird, und dieser Prozess wird jedes Mal wiederholt, wenn Sie das Image erneut bereitstellen müssen

    Hinweis: Sie sollten Konsolen-/Protokolleinträge sehen, die einen erfolgreichen Download und eine erfolgreiche Extraktion anzeigen:

Downloading NuGet package from 'https://www.nuget.org/api/v2/package/IronPdf.Native.Chrome.Linux/2023.1.11387'
    Extracting package contents '/app/bin/Debug/netcoreapp3.1/IronPdf.Native.Chrome.Linux.2023.1.11387.nupkg/runtimes/linux-x64/native' to '/app/bin/Debug/netcoreapp3.1/runtimes/linux-x64/native'
    Successfully deployed NuGet package 'IronPdf.Native.Chrome.Linux' to '/app/bin/Debug/netcoreapp3.1/runtimes/linux-x64/native'
    Successfully located 'IronInterop' at '/app/bin/Debug/netcoreapp3.1/runtimes/linux-x64/native'

3. Schlussfolgerung

Zusammenfassend lässt sich sagen, dass zur Verringerung der Anfangsgröße des Containers:

  • Verwenden Sie das NuGet-Paket IronPdf.Slim
  • IronPDF konfigurieren
Installation.LinuxAndDockerDependenciesAutoConfig = true;
    Installation.AutomaticallyDownloadNativeBinaries = true;
  • Sicherstellen, dass das Anwendungsverzeichnis beschreibbar/ausführbar ist

    rUN chmod +rwx /app/`

    Ein sehr schlankes Docker-Image, das sowohl Punkt 1 als auch Punkt 2 nutzt, sollte die Größe von ~500MB auf ~200MB reduzieren.

    Wenn möglich, erzielen Sie die beste Leistung, wenn Sie sich NICHT für einen schlanken Einsatz entscheiden.

    Einige Container- und Cloud-Umgebungen sind nicht persistent und müssen daher möglicherweise gelegentlich Abhängigkeiten erneut herunterladen oder die apt-get-Befehle erneut ausführen, was bis zu einigen Minuten dauern kann!

    Wir haben jedoch Verständnis dafür, dass einige Entwickler strenge Größenanforderungen für ihre Implementierungen haben.