IronPdf.Linux

IronPdf para Linux ocupa unos 280 MB (incluyendo tanto el código de IronPdf como todo el navegador Chrome). 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
VB   C#

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 hacerlo cuando se construye la imagen docker:

  1. Elimina los comandos apt-get de tu Dockerfile
  2. Establecer Installation.LinuxAndDockerDependenciesAutoConfig = true; antes de inicializar IronPdf o renderizar un documento.
  3. Asegúrese de que su aplicación se ejecuta con permisos suficientes para ejecutar comandos `apt-get

    Nota: Su primera inicialización será más lenta ya que los comandos apt-get deben finalizar 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. eliminar IronPdf.Linux (y cualquier otro IronPdf) paquete nuget(s) de su proyecto, y añada IronPdf.Slim
  2. establecer Installation.AutomaticallyDownloadNativeBinaries = true; antes de inicializar IronPdf o renderizar un documento.
  3. Asegúrese de que su dockerfile concede 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 por 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, por lo que puede ser necesario volver a descargar ocasionalmente las dependencias o ejecutar de nuevo los comandos apt-get, lo que puede llevar hasta un par de minutos.!

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