# Ausführen von IronPDF unter Linux: Anleitung zur Einrichtung
IronPDF für Linux ist etwa 280 MB groß (einschließlich des IronPDF-Codes und 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:
```csharp
// 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, die Größe zu reduzieren, besteht darin, `apt-get` Befehle zur Laufzeit auszuführen, anstatt 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 sich jedes Mal wiederholen, wenn Sie das Image erneut bereitstellen müssen.
Hinweis: Sie sollten Konsolen-/Protokolleinträge sehen, die erfolgreiche Paketinstallationen anzeigen:
```shell
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.
1. Entfernen Sie IronPdf.Linux (und alle anderen IronPDF) NuGet-Pakete 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 (z.B. ä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:
```shell
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:
```csharp
// Set installation options for Linux and Docker environments
Installation.LinuxAndDockerDependenciesAutoConfig = true;
Installation.AutomaticallyDownloadNativeBinaries = true;
```
- Stellen Sie sicher, dass das Anwendungsverzeichnis beschreibbar/ausführbar ist:
```dockerfile
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.
IronPDF für Linux ist etwa 280 MB groß (einschließlich des IronPDF-Codes und 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 IronPdfIronPdf.Logging.Logger.EnableDebugging = true;// Specify the log file pathIronPdf.Logging.Logger.LogFilePath = "Default.log";// Set the logging mode to capture all log dataIronPdf.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 IronPdfIronPdf.Logging.Logger.EnableDebugging = True' Specify the log file pathIronPdf.Logging.Logger.LogFilePath = "Default.log"' Set the logging mode to capture all log dataIronPdf.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, die Größe zu reduzieren, besteht darin, apt-get Befehle zur Laufzeit auszuführen, anstatt beim Erstellen des Docker-Images:
Entfernen Sie apt-get Befehle aus 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-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 sich jedes Mal wiederholen, 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: libnspr4The following NEW packages will be installed: libnspr4 libnss30 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.
Entfernen Sie IronPdf.Linux (und alle anderen IronPDF) NuGet-Pakete 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/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 environmentsInstallation.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 environmentsInstallation.LinuxAndDockerDependenciesAutoConfig = TrueInstallation.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/
RUN chmod +rwx /app/
Text
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 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 Handbücher.