Ejecutar IronPDF en Linux: Guía de instalación
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;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 cuando se construye la imagen de Docker:
- Elimina los comandos
apt-getde tu Dockerfile. - Establece
Installation.LinuxAndDockerDependenciesAutoConfig = true;antes de inicializar IronPdf o procesar un documento. - Asegúrate de que tu aplicación se ejecute con los permisos suficientes para ejecutar los comandos
apt-get.
Nota: Tu primera inicialización será más lenta, ya que los comandos apt-get deben terminar 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 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.2. Utilizar IronPdf.Slim
También puedes optar por solo incluir IronPdf.dll y descargar los archivos necesarios en tiempo de ejecución.
- Elimina IronPdf.Linux (y cualquier otro paquete NuGet de IronPdf) de tu proyecto y añade IronPdf.Slim.
- Establece
Installation.AutomaticallyDownloadNativeBinaries = true;antes de inicializar IronPdf o procesar un documento. - Asegúrate de que tu Dockerfile otorgue permisos de lectura y escritura a todo el directorio de trabajo de tu aplicación (por ejemplo, cambia
RUN chmod +rwx /app/runtimes/linux-x64/native/IronCefSubprocessaRUN 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'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;- 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 de contenedores y en la nube no son persistentes y, por lo tanto, pueden tener que volver a descargar dependencias o ejecutar los comandos apt-get nuevamente, lo que puede llevar hasta un par de minutos!
Sin embargo, entendemos que algunos desarrolladores pueden estar sujetos a estrictos requisitos de tamaño para sus despliegues.






