Running IronPDF on Linux: Setup Guide

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

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

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

Wenn Sie jedoch eine minimalistische Distribution verwenden, müssen Sie die Linux-Pakete installieren, die erforderlich sind, um Chrome unter Linux auszuführen.

Hinweis: Um das Debuggen zu erleichtern, können Sie diese setzen:

// Enable detailed debugging for IronPdf
IronPdf.Logging.Logger.EnableDebugging = true;

// Specify the log file path
IronPdf.Logging.Logger.LogFilePath = "Default.log";

// Set the logging mode to capture all log data
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
// Enable detailed debugging for IronPdf
IronPdf.Logging.Logger.EnableDebugging = true;

// Specify the log file path
IronPdf.Logging.Logger.LogFilePath = "Default.log";

// Set the logging mode to capture all log data
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
' Enable detailed debugging for IronPdf
IronPdf.Logging.Logger.EnableDebugging = True

' Specify the log file path
IronPdf.Logging.Logger.LogFilePath = "Default.log"

' Set the logging mode to capture all log data
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All
$vbLabelText   $csharpLabel

Wie man ein kleineres Docker-Image erstellt

1. Pakete zur Laufzeit installieren

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

  1. Entfernen Sie apt-get Befehle aus Ihrer Dockerfile.
  2. Setzen Sie Installation.LinuxAndDockerDependenciesAutoConfig = true; bevor Sie IronPdf initialisieren oder ein Dokument rendern.
  3. Stellen Sie sicher, dass Ihre Anwendung mit ausreichenden Berechtigungen ausgeführt wird, um apt-get Befehle auszuführen.

Hinweis: Ihre erste Initialisierung wird langsamer sein, da die apt-get Befehle abgeschlossen sein müssen, bevor Ihr erstes Dokument gerendert wird, und dieser Prozess wird jedes Mal wiederholt, wenn Sie das Image neu bereitstellen müssen.

Hinweis: Sie sollten Konsolen-/Protokolleinträge sehen, die erfolgreiche Paketinstallationen 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.
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.
SHELL

2. Verwenden Sie IronPdf.Slim

Sie können auch wählen, nur IronPdf.dll einzuschließen und die erforderlichen Dateien zur Laufzeit herunterzuladen.

  1. Entfernen Sie IronPdf.Linux (und alle anderen IronPdf) NuGet-Paket(e) aus Ihrem Projekt und fügen Sie IronPdf.Slim hinzu.
  2. Setzen Sie Installation.AutomaticallyDownloadNativeBinaries = true; bevor Sie IronPdf initialisieren oder ein Dokument rendern.
  3. Stellen Sie sicher, dass Ihre Dockerfile Lese- und Schreibberechtigungen für das gesamte Arbeitsverzeichnis Ihrer Anwendung gewährt (zum Beispiel ändern Sie RUN chmod +rwx /app/runtimes/linux-x64/native/IronCefSubprocess in RUN chmod +rwx /app/).

Hinweis: Ihre erste Initialisierung wird langsamer sein, da das NuGet-Paket heruntergeladen und extrahiert wird, bevor Ihr erstes Dokument gerendert wird, und dieser Prozess wird jedes Mal wiederholt, wenn Sie das Image neu bereitstellen müssen.

Hinweis: Sie sollten Konsolen-/Protokolleinträge sehen, die einen erfolgreichen Download und 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'
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'
SHELL

3. Fazit

Zusammenfassend, um die initiale Containergröße zu reduzieren:

  • Verwenden Sie das IronPdf.Slim NuGet-Paket.
  • Konfigurieren Sie IronPdf:
// Set installation options for Linux and Docker environments
Installation.LinuxAndDockerDependenciesAutoConfig = true;
Installation.AutomaticallyDownloadNativeBinaries = true;
// Set installation options for Linux and Docker environments
Installation.LinuxAndDockerDependenciesAutoConfig = true;
Installation.AutomaticallyDownloadNativeBinaries = true;
' Set installation options for Linux and Docker environments
Installation.LinuxAndDockerDependenciesAutoConfig = True
Installation.AutomaticallyDownloadNativeBinaries = True
$vbLabelText   $csharpLabel
  • Stellen Sie sicher, 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.

Falls möglich, erhalten Sie die beste Leistung, wenn Sie nicht eine schlanke Bereitstellung wählen.

Einige containerisierte 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 ein paar Minuten dauern kann!

Wohl verstehen wir, dass einige Entwickler strengen Größenanforderungen für ihre Bereitstellungen unterliegen.

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 16,154,058 | Version: 2025.11 gerade veröffentlicht