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
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:
Elimina los comandos
apt-get
de tu DockerfileEstablecer
Installation.LinuxAndDockerDependenciesAutoConfig = true;
antes de inicializar IronPdf o renderizar un documento.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 imagenNota: 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.
eliminar IronPdf.Linux (y cualquier otro IronPdf) paquete nuget(s) de su proyecto, y añada IronPdf.Slim
establecer
Installation.AutomaticallyDownloadNativeBinaries = true;
antes de inicializar IronPdf o renderizar un documento.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
porRUN 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.