Ejecución de IronPDF en Linux: Guía de instalación

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

IronPdf for Linux tiene un tamaño aproximado de 280 MB (incluyendo tanto el código de IronPdf como el navegador Chrome completo). Las imágenes Docker ocupan unos 500 MB.

Chrome también requiere algunos paquetes básicos que varían en función de tu distribución de Linux. La mayoría de las distribuciones de Linux ya tienen instalados estos paquetes, ya que son utilizados por diversas aplicaciones y bibliotecas en Linux.

Sin embargo, si utilizas una distribución básica, tendrás que instalar los paquetes de Linux necesarios para que Chrome funcione en Linux.

Nota: Para facilitar la depuración, puede configurar estas opciones:

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
$vbLabelText   $csharpLabel

Cómo crear una imagen Docker más pequeña

1. Instalación de paquetes en tiempo de ejecución

Una forma de reducir el tamaño es ejecutar los comandos apt-get en tiempo de ejecución, en lugar de cuando se está construyendo la imagen de Docker:

  1. Elimina los comandos apt-get de tu Dockerfile

  2. Establezca Installation.LinuxAndDockerDependenciesAutoConfig = true; antes de inicializar IronPdf o renderizar un documento.

  3. Asegúrese de que su aplicación se ejecute con permisos suficientes para ejecutar comandos apt-get

    Nota: La primera inicialización será más lenta, ya que los comandos apt-get deben completarse antes de renderizar su primer documento, y este proceso se repetirá cada vez que tenga que volver a desplegar la imagen.

    Nota: debería ver entradas de consola/log que indican que los paquetes se han instalado correctamente:

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. Utilice IronPdf.Slim

También puede elegir _sólo_incluir IronPdf.dll y descargar los archivos necesarios en tiempo de ejecución.

  1. elimina el paquete nuget IronPdf.Linux (y cualquier otro IronPdf) de tu proyecto y añade IronPdf.Slim

  2. establezca Installation.AutomaticallyDownloadNativeBinaries = true; antes de inicializar IronPdf o renderizar un documento

  3. Asegúrese de que su dockerfile otorgue permisos de lectura y escritura a todo el directorio de trabajo de su aplicación (por ejemplo, cambie RUN chmod +rwx /app/runtimes/linux-x64/native/IronCefSubprocess a RUN chmod +rwx /app/)

    Nota: su primera inicialización será más lenta ya que el paquete nuget se descarga y se extrae antes de renderizar su primer documento, y este proceso se repetirá cada vez que tenga que volver a desplegar la imagen

    Nota: debería ver entradas de consola/log que indican que la descarga y la extracción se han realizado correctamente:

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. Conclusión

En resumen, para reducir el tamaño inicial del contenedor:

  • Utilice el paquete NuGet IronPdf.Slim
  • Configurar IronPdf
Installation.LinuxAndDockerDependenciesAutoConfig = true;
    Installation.AutomaticallyDownloadNativeBinaries = true;
  • Asegúrese de que el directorio de la aplicación es escribible/ejecutable

    RUN chmod +rwx /app/

    Una imagen Docker muy delgada que utilice los puntos 1 y 2 debería reducir el tamaño de ~500MB a ~200MB.

    Si es posible, obtendrá el mejor rendimiento si NO opta por un despliegue delgado.

    Algunos entornos en contenedores y en la nube no son persistentes y, por lo tanto, pueden tener que volver a descargar dependencias ocasionalmente o ejecutar los comandos apt-get nuevamente, ¡lo que puede tardar hasta un par de minutos!

    Sin embargo, entendemos que algunos desarrolladores puedan estar sujetos a estrictos requisitos de tamaño para sus implantaciones.