Añadir IronPDF a un contenedor Docker existente

Chaknith Bin
Chaknith Bin
25 de enero, 2023
Actualizado 9 de febrero, 2025
Compartir:
This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF for .NET Standard ahora es totalmente compatible con Docker, incluidos Azure Docker Containers para Linux y Windows.

¿Desea desplegar IronPDF como un contenedor Docker independiente? Aprende más sobre la guía de tutoriales de IronPDF Engine.

Docker V1 related to Añadir IronPDF a un contenedor Docker existente
Azure 1 related to Añadir IronPDF a un contenedor Docker existente
Linux V1 related to Añadir IronPDF a un contenedor Docker existente
Amazon Web Services V1 related to Añadir IronPDF a un contenedor Docker existente
Windows Logo V1 related to Añadir IronPDF a un contenedor Docker existente

¿Por qué utilizar Docker en Azure?

Junto con una excelente escalabilidad empresarial, los contenedores de Docker en Azure disfrutaron de más permisos que las aplicaciones web regulares.

Esto permite renderizar fuentes SVG, ya que el acceso del sistema a los gráficos GDI+ está habilitado.

Introducción a IronPDF y Linux

Si Docker con .NET es nuevo para ti, te recomendamos este excelente artículo sobre configuración de depuración e integración de Docker con proyectos de Visual Studio.

También le recomendamos encarecidamente que lea nuestra Guía de Configuración y Compatibilidad de IronPDF Linux

Distribuciones Linux Docker recomendadas

Recomendamos a continuación los últimos sistemas operativos Linux de 64 bits para una "configuración sencilla" de IronPDF.

Fundamentos de la instalación de IronPDF Linux Docker

Utilizar paquetes NuGet optimizados para Linux

Recomendamos usar el paquete NuGet IronPdf.Linux en lugar del paquete IronPdf habitual para ahorrar espacio en disco y evitar la descarga de recursos al iniciar su instancia de Docker. No te preocupes, sigue funcionando cuando se desarrolla en Windows o macOS - sólo está optimizado para Linux.

Install-Package IronPdf.Linux

Otra solución es simplemente agregar IronPdf.Native.Chrome.Linux además del paquete normal de NuGet de IronPdf.

Install-Package IronPdf.Native.Chrome.Linux

Evite la instalación automática de dependencias

Muchos usuarios informan mejores resultados con Linux y Docker cuando LinuxAndDockerDependenciesAutoConfig está configurado como falso. Eso se debe a que los prerrequisitos ya están instalados por los gestores de paquetes estilo apt-get ya en tus archivos Docker.

IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;

Desactivar la aceleración de la GPU

Los contenedores Docker de Linux no suelen tener acceso a una GPU. La aceleración de la GPU está desactivada por defecto. Si ha activado ChromeGpuModes.Enabled, le recomendamos encarecidamente desactivarlo para implementaciones en Docker:

IronPdf.Installation.ChromeGpuMode=IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;

"Inicialización "anticipada

Opcionalmente, también puede desear llamar al método IronPdf.Installation.Initialize() para iniciar IronPDF manualmente. La primera vez que una instancia Docker utiliza IronPDF, puede tardar algún tiempo en descargar los requisitos previos. Podemos evitar ese escenario llamando a este código cuando se crea la instancia:

IronPdf.Installation.Initialize();

Ubuntu Linux DockerFiles

Docker V1 related to Ubuntu Linux DockerFiles
Ubuntu V1 related to Ubuntu Linux DockerFiles

Ubuntu 22 con .NET 8

Ubuntu 22 con .NET 7

Ubuntu 20 con .NET 6

Ubuntu 20 con .NET 5

Ubuntu 20 con .NET 3.1 LTS

Ubuntu 18 con .NET 3.1 LTS

Debian Linux DockerFiles

Docker V1 related to Debian Linux DockerFiles
Debian V1 related to Debian Linux DockerFiles

Debian 12 con .NET 8

Debian 11 con .NET 7

Debian 11 con .NET 6

Debian 11 con .NET 5

Debian 11 con .NET 3.1 LTS

Debian 10 con .NET 5

Debian 10 con .NET 3.1 LTS

Alpine Linux DockerFiles

No es posible ejecutar IronPDF en Alpine Linux. Ojalá pudiéramos, pero no podemos. Francamente, nos gusta Alpine y esperamos que este proyecto continúe y crezca. A fecha de 2023, Alpine sigue utilizando bibliotecas de lenguaje C "musl" obsoletas que no permiten aún a los desarrolladores de Chromium dar pleno soporte a este sistema operativo.

Uso de Alpine Docker con IronPdfEngine en .NET 6

IronPdf proporciona una imagen contenedora que contiene todas las funcionalidades de IronPdf. Esto permite a los proyectos que se ejecutan en Alpine acceder a las funcionalidades de IronPdf conectándose a un contenedor IronPdfEngine.

Paso 1: Extraer y ejecutar la imagen Docker del motor IronPdf

Ejecute los siguientes comandos en su terminal para extraer y ejecutar la imagen Docker del motor IronPdf:

docker pull ironsoftwareofficial/ironpdfengine
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine

Paso 2: Configurar la aplicación de consola

Cree una nueva aplicación de consola orientada a .NET 6.

Instale el paquete NuGet IronPdf.Slim mediante el gestor de paquetes NuGet.

Contenedores Docker de IronPDF para Windows

Docker V1 related to Contenedores Docker de IronPDF para Windows
Windows Logo V1 related to Contenedores Docker de IronPDF para Windows

Los contenedores Docker de Windows son cada vez más populares en Azure, ya que ofrecen mayores niveles de rendimiento y escalabilidad, y dan a los desarrolladores más permisos para configurar las instancias.

IronPDF realizará un renderizado de texto más atractivo dentro de un contenedor Docker (Windows o Linux) en Azure debido a los mayores niveles de acceso a la biblioteca de gráficos y la tarjeta gráfica virtual.

El artículo 'Visual Studio Container Tools for Docker' es una guía de inicio realmente excelente.

Este es un ejemplo de contenedor Windows Dockerfile para .NET Core 3.1

Windows Server 2019 .NET 6.0

Contenedores Windows preconfigurados que incluyen todas las dependencias necesarias para ejecutar IronPdf.

Atención
Tenga en cuenta que estos contenedores no están pensados para CONSTRUIR aplicaciones .NET, sino para EJECUTARLAS.

FROM mcr.microsoft.com/dotnet/sdk:6.0-windowsservercore-ltsc2019 AS build
WORKDIR /src
COPY ["nuget.config", "."]
COPY ["ConsoleApp/ConsoleApp.csproj", "ConsoleApp/"]
RUN dotnet restore "ConsoleApp/ConsoleApp.csproj"
COPY . .
WORKDIR "/src/ConsoleApp"
RUN dotnet build "ConsoleApp.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "ConsoleApp.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM ironsoftwareofficial/windows:2019-net60
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ConsoleApp.dll"]

Visite el repositorio de Docker de IronSoftware en Docker Hub para explorar imágenes preconfiguradas adicionales para ejecutar IronPDF.

Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.