Ejecutar 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 para Linux tiene un tamaño de aproximadamente 280 MB (incluyendo tanto el código de IronPdf como todo el navegador Chrome). Las imágenes de Docker son de aproximadamente 500 MB.

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

Sin embargo, si estás utilizando una distribución minimalista, necesitarás instalar los paquetes de Linux necesarios para que Chrome funcione en Linux.

Nota: Para facilitar la depuración, puedes configurar lo siguiente:

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

Cómo hacer 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 al crear la imagen de Docker:

  1. Elimine los comandos apt-get de su 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 los 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 implementar la imagen.

Nota: Deberías ver entradas en la consola/registro que indican la instalación exitosa de paquetes:

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

También puedes optar por solo incluir IronPdf.dll y descargar los archivos necesarios en tiempo de ejecución.

  1. Elimina IronPdf.Linux (y cualquier otro paquete NuGet de 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: Tu primera inicialización será más lenta, ya que el paquete NuGet se descargará y extraerá antes de procesar tu primer documento, y este proceso se repetirá cada vez que tengas que volver a desplegar la imagen.

Nota: Deberías ver entradas en la consola/registro que indican una descarga y extracción exitosa:

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

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

  • Utiliza el paquete NuGet IronPdf.Slim.
  • Configura 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;
$vbLabelText   $csharpLabel
  • Asegúrate de que el directorio de la aplicación sea escribible/ejecutable:
RUN chmod +rwx /app/

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

Si es posible, verás el mejor rendimiento si NO optas por un despliegue reducido.

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

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

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 17,803,474 | Versión: 2026.3 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronPdf
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.