Ausführen von IronPDF unter Linux: Anleitung zur Einrichtung
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
Wie man ein kleineres Docker-Image erstellt
1. Pakete zur Laufzeit installieren
Eine Möglichkeit zur Größenreduzierung besteht darin, die Befehle apt-get zur Laufzeit auszuführen, anstatt beim Erstellen des Docker-Images:
- Entfernen Sie die Befehle
apt-getaus Ihrer Dockerfile. - Setzen Sie
Installation.LinuxAndDockerDependenciesAutoConfig = true;, bevor Sie IronPDF initialisieren oder ein Dokument rendern. - Stellen Sie sicher, dass Ihre Anwendung mit ausreichenden Berechtigungen ausgeführt wird, um
apt-getBefehle auszuführen.
Hinweis: Die erste Initialisierung wird langsamer sein, da die apt-get-Befehle abgeschlossen sein müssen, bevor das erste Dokument gerendert werden kann. Dieser Vorgang wiederholt sich jedes Mal, wenn Sie das Image erneut 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.
2. Verwenden Sie IronPdf.Slim
Sie können auch wählen, nur IronPdf.dll einzuschließen und die erforderlichen Dateien zur Laufzeit herunterzuladen.
- Entfernen Sie IronPdf.Linux (und alle anderen IronPdf) NuGet-Paket(e) aus Ihrem Projekt und fügen Sie IronPdf.Slim hinzu.
- Setzen Sie
Installation.AutomaticallyDownloadNativeBinaries = true;, bevor Sie IronPDF initialisieren oder ein Dokument rendern. - Stellen Sie sicher, dass Ihre Dockerfile Lese- und Schreibberechtigungen für das gesamte Arbeitsverzeichnis Ihrer Anwendung gewährt (z. B. ändern Sie
RUN chmod +rwx /app/runtimes/linux-x64/native/IronCefSubprocessinRUN 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'
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
- 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.
Manche containerisierte und Cloud-Umgebungen sind nicht persistent und müssen daher gelegentlich Abhängigkeiten erneut herunterladen oder die Befehle apt-get 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.

