# Uruchamianie IronPDF na Linux: Przewodnik dotyczący konfiguracji
IronPDF dla Linux zajmuje około 280MB (w tym zarówno kod IronPDF, jak i cała przeglądarka Chrome). Obrazy Docker mają około 500 MB.
Chrome wymaga również kilku podstawowych pakietów, które różnią się w zależności od dystrybucji systemu Linux. Większość dystrybucji Linuksa ma te pakiety już zainstalowane, ponieważ są one używane przez różne aplikacje i biblioteki w systemie Linux.
Jeśli jednak korzystasz z dystrybucji typu barebones, będziesz musiał zainstalować pakiety Linuksa niezbędne do uruchomienia przeglądarki Chrome w systemie Linux.
Uwaga: Aby ułatwić debugowanie, można ustawić następujące opcje:
```csharp
// 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;
```
## Jak zmniejszyć obraz Docker
### 1. Instalowanie pakietów w czasie wykonywania
Jednym ze sposobów na zmniejszenie rozmiaru jest uruchomienie komend `apt-get` w czasie wykonywania, a nie podczas budowania obrazu dockera:
1. Usuń komendy `apt-get` z twojego Dockerfile.
2. Ustaw `Installation.LinuxAndDockerDependenciesAutoConfig = true;` przed zainicjowaniem IronPDF lub renderowaniem dokumentu.
3. Upewnij się, że twoja aplikacja jest uruchamiana z wystarczającymi uprawnieniami do wykonywania komend `apt-get`.
Uwaga: Pierwsza inicjalizacja będzie wolniejsza, ponieważ komendy `apt-get` muszą się zakończyć przed renderowaniem pierwszego dokumentu, a ten proces będzie się powtarzał za każdym razem, gdy będziesz musiał przeprowadzić ponowne wdrożenie obrazu.
Uwaga: Powinieneś zobaczyć wpisy w konsoli/dzienniku wskazujące na pomyślną instalację pakietów:
```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. Użyj IronPdf.Slim
Można również zdecydować się na włączenie _wyłącznie_ pliku IronPdf.dll i pobranie niezbędnych plików w czasie wykonywania.
1. Usuń pakiety NuGet IronPdf.Linux (i pozostałe IronPDF) z projektu i dodaj IronPdf.Slim.
2. Ustaw `Installation.AutomaticallyDownloadNativeBinaries = true;` przed zainicjowaniem IronPDF lub renderowaniem dokumentu.
3. Upewnij się, że twój Dockerfile przyznaje uprawnienia do odczytu i zapisu dla całego katalogu roboczego twojej aplikacji (np. zmień `RUN chmod +rwx /app/runtimes/linux-x64/native/IronCefSubprocess` na `RUN chmod +rwx /app/`).
Uwaga: Pierwsza inicjalizacja będzie przebiegać wolniej, ponieważ pakiet NuGet jest pobierany i rozpakowywany przed wyrenderowaniem pierwszego dokumentu, a proces ten będzie się powtarzał za każdym razem, gdy konieczne będzie ponowne wdrożenie obrazu.
Uwaga: Powinieneś zobaczyć wpisy w konsoli/dzienniku wskazujące na pomyślne pobranie i wyodrębnienie:
```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. Wnioski
Podsumowując, aby zmniejszyć _początkowy rozmiar kontenera:_
- Użyj pakietu NuGet IronPdf.Slim.
- Skonfiguruj IronPDF:
```csharp
// Set installation options for Linux and Docker environments
Installation.LinuxAndDockerDependenciesAutoConfig = true;
Installation.AutomaticallyDownloadNativeBinaries = true;
```
- Upewnij się, że katalog aplikacji ma uprawnienia do zapisu/uruchamiania:
```dockerfile
RUN chmod +rwx /app/
```
Bardzo niewielki obraz Docker wykorzystujący zarówno punkt 1, jak i 2 powinien zmniejszyć rozmiar z ~500 MB do ~200 MB.
Jeśli to możliwe, najlepszą wydajność uzyskasz, NIE wybierając wdrożenia typu slim.
Niektóre konteneryzowane środowiska i środowiska chmurowe są _nietrwałe_, i dlatego mogą czasem wymagać ponownego pobrania zależności lub ponownego uruchomienia komend `apt-get`, co może potrwać do kilku minut!
Rozumiemy jednak, że niektórzy programiści mogą podlegać ścisłym wymaganiom dotyczącym rozmiaru swoich wdrożeń.
IronPDF dla Linux zajmuje około 280MB (w tym zarówno kod IronPDF, jak i cała przeglądarka Chrome). Obrazy Docker mają około 500 MB.
Chrome wymaga również kilku podstawowych pakietów, które różnią się w zależności od dystrybucji systemu Linux. Większość dystrybucji Linuksa ma te pakiety już zainstalowane, ponieważ są one używane przez różne aplikacje i biblioteki w systemie Linux.
Jeśli jednak korzystasz z dystrybucji typu barebones, będziesz musiał zainstalować pakiety Linuksa niezbędne do uruchomienia przeglądarki Chrome w systemie Linux.
Uwaga: Aby ułatwić debugowanie, można ustawić następujące opcje:
// 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;
// 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;
' 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
' 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
Jak zmniejszyć obraz Docker
1. Instalowanie pakietów w czasie wykonywania
Jednym ze sposobów na zmniejszenie rozmiaru jest uruchomienie komend apt-get w czasie wykonywania, a nie podczas budowania obrazu dockera:
Usuń komendy apt-get z twojego Dockerfile.
Ustaw Installation.LinuxAndDockerDependenciesAutoConfig = true; przed zainicjowaniem IronPDF lub renderowaniem dokumentu.
Upewnij się, że twoja aplikacja jest uruchamiana z wystarczającymi uprawnieniami do wykonywania komend apt-get.
Uwaga: Pierwsza inicjalizacja będzie wolniejsza, ponieważ komendy apt-get muszą się zakończyć przed renderowaniem pierwszego dokumentu, a ten proces będzie się powtarzał za każdym razem, gdy będziesz musiał przeprowadzić ponowne wdrożenie obrazu.
Uwaga: Powinieneś zobaczyć wpisy w konsoli/dzienniku wskazujące na pomyślną instalację pakietów:
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. Użyj IronPdf.Slim
Można również zdecydować się na włączenie wyłącznie pliku IronPdf.dll i pobranie niezbędnych plików w czasie wykonywania.
Usuń pakiety NuGet IronPdf.Linux (i pozostałe IronPDF) z projektu i dodaj IronPdf.Slim.
Ustaw Installation.AutomaticallyDownloadNativeBinaries = true; przed zainicjowaniem IronPDF lub renderowaniem dokumentu.
Upewnij się, że twój Dockerfile przyznaje uprawnienia do odczytu i zapisu dla całego katalogu roboczego twojej aplikacji (np. zmień RUN chmod +rwx /app/runtimes/linux-x64/native/IronCefSubprocess na RUN chmod +rwx /app/).
Uwaga: Pierwsza inicjalizacja będzie przebiegać wolniej, ponieważ pakiet NuGet jest pobierany i rozpakowywany przed wyrenderowaniem pierwszego dokumentu, a proces ten będzie się powtarzał za każdym razem, gdy konieczne będzie ponowne wdrożenie obrazu.
Uwaga: Powinieneś zobaczyć wpisy w konsoli/dzienniku wskazujące na pomyślne pobranie i wyodrębnienie:
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. Wnioski
Podsumowując, aby zmniejszyć początkowy rozmiar kontenera:
Użyj pakietu NuGet IronPdf.Slim.
Skonfiguruj 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
Upewnij się, że katalog aplikacji ma uprawnienia do zapisu/uruchamiania:
RUN chmod +rwx /app/
RUN chmod +rwx /app/
Text
Bardzo niewielki obraz Docker wykorzystujący zarówno punkt 1, jak i 2 powinien zmniejszyć rozmiar z ~500 MB do ~200 MB.
Jeśli to możliwe, najlepszą wydajność uzyskasz, NIE wybierając wdrożenia typu slim.
Niektóre konteneryzowane środowiska i środowiska chmurowe są nietrwałe, i dlatego mogą czasem wymagać ponownego pobrania zależności lub ponownego uruchomienia komend apt-get, co może potrwać do kilku minut!
Rozumiemy jednak, że niektórzy programiści mogą podlegać ścisłym wymaganiom dotyczącym rozmiaru swoich wdrożeń.
Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.