Uruchamianie IronPDF na Linux: Przewodnik dotyczacy konfiguracji

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

IronPdf dla systemu Linux zajmuje około 280 MB (w tym zarówno kod IronPdf, jak i całą przeglądarkę 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:

// 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

Jak zmniejszyć obraz Docker

1. Instalowanie pakietów w czasie wykonywania

Jednym ze sposobów na zmniejszenie rozmiaru jest uruchamianie poleceń apt-get w czasie wykonywania, a nie podczas budowania obrazu dockera:

  1. Usuń polecenia apt-get ze swojego 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 uruchamiania poleceń apt-get.

Uwaga: Twoja pierwsza inicjalizacja będzie wolniejsza, ponieważ polecenia apt-get muszą zostać ukończone przed renderowaniem pierwszego dokumentu, a ten proces będzie się powtarzał za każdym razem, gdy będziesz musiał ponownie wdrożyć obraz.

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:
  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. 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 wszelkie inne pakiety IronPdf) ze swojego 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:

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.
  • Konfiguracja 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
  • Upewnij się, że katalog aplikacji ma uprawnienia do zapisu/uruchamiania:
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 kontenerowe i chmurowe środowiska nie są uporczywe i dlatego mogą od czasu do czasu musieć ponownie pobrać zależności lub uruchomić polecenia apt-get ponownie, 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
Autor tekstów technicznych

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ę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,135,201 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.