IronPDF.Linux

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

IronPDF pour Linux pèse environ 280 Mo (y compris le code d'IronPDF et l'ensemble du navigateur Chrome). Les images Docker pèsent environ 500 Mo.

Chrome nécessite également quelques paquets de base qui varient en fonction de votre distribution Linux. Ces paquets sont déjà installés dans la plupart des distributions Linux, car ils sont utilisés par diverses applications et bibliothèques sous Linux.

Cependant, si vous utilisez une distribution "barebones", vous devrez installer les paquets Linux nécessaires pour faire fonctionner Chrome sur Linux.

Note : Pour faciliter le débogage, vous pouvez définir ces paramètres :

IronPdf.Logging.Logger.EnableDebugging = true;
IronPdf.Logging.Logger.LogFilePath = "Default.log";
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
IronPdf.Logging.Logger.EnableDebugging = true;
IronPdf.Logging.Logger.LogFilePath = "Default.log";
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
IronPdf.Logging.Logger.EnableDebugging = True
IronPdf.Logging.Logger.LogFilePath = "Default.log"
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All
VB   C#

Comment créer une image Docker plus petite

1. Installation de paquets au moment de l'exécution

Une façon de réduire la taille est d'exécuter les commandes apt-get au moment de l'exécution, plutôt que lors de la construction de l'image docker :

  1. Supprimez les commandes apt-get de votre fichier Docker

  2. Définissez Installation.LinuxAndDockerDependenciesAutoConfig = true; avant d'initialiser IronPDF ou d'effectuer le rendu d'un document

  3. Assurez-vous que votre application est exécutée avec les permissions suffisantes pour exécuter les commandes apt-get

    Note : Votre première initialisation sera plus lente car les commandes apt-get doivent se terminer avant de rendre votre premier document, et ce processus sera répété à chaque fois que vous devrez redéployer l'image

    Note : vous devriez voir des entrées de console/log indiquant que l'installation des paquets a réussi :

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. Utiliser IronPDF.Slim

Vous pouvez également choisir de n'inclure qu'IronPDF.dll et de télécharger les fichiers nécessaires au moment de l'exécution.

  1. supprimer IronPDF.Linux (et tout autre IronPDF) paquet nuget(s) de votre projet, et ajoutez IronPDF.Slim

  2. set Installation.AutomaticallyDownloadNativeBinaries = true; avant d'initialiser IronPDF ou de rendre un document

  3. Assurez-vous que votre dockerfile accorde des permissions de lecture et d'écriture à l'ensemble du répertoire de travail de votre application (par exemple, changez RUN chmod +rwx /app/runtimes/linux-x64/native/IronCefSubprocess en RUN chmod +rwx /app/)

    Note : votre première initialisation sera plus lente car le paquet nuget se télécharge et est extrait avant de rendre votre premier document, et ce processus sera répété à chaque fois que vous devrez redéployer l'image

    Note : vous devriez voir des entrées de console/log indiquant que le téléchargement et l'extraction ont réussi :

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

En résumé, pour réduire la taille initiale du conteneur, il faut

  • Utilisez le package NuGet IronPdf.Slim
  • Configurer IronPDF
Installation.LinuxAndDockerDependenciesAutoConfig = true;
    Installation.AutomaticallyDownloadNativeBinaries = true;
  • S'assurer que le répertoire de l'application est accessible en écriture/exécutable

    RUN chmod +rwx /app/

    Une image Docker très fine utilisant les points 1 et 2 devrait réduire la taille de ~500MB à ~200MB.

    Dans la mesure du possible, vous obtiendrez les meilleures performances si vous n'optez PAS pour un déploiement fin.

    Certains environnements conteneurisés et en nuage ne sont pas persistants et doivent donc occasionnellement retélécharger les dépendances, ou exécuter à nouveau les commandes apt-get, ce qui peut prendre jusqu'à quelques minutes!

    Cependant, nous comprenons que certains développeurs puissent être soumis à des exigences strictes en matière de taille pour leurs déploiements.