Añadir IronPDF a un contenedor Docker existente

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? aprenda más sobre IronPdfEngine.

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.

:InstallCmd Install-Package IronPdf.Linux
:InstallCmd Install-Package IronPdf.Linux
SHELL

Otra solución es simplemente añadir IronPdf.Native.Chrome.Linux encima del paquete NuGet regular de IronPdf.

:InstallCmd Install-Package IronPdf.Native.Chrome.Linux
:InstallCmd Install-Package IronPdf.Native.Chrome.Linux
SHELL

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;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
SHELL

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;
IronPdf.Installation.ChromeGpuMode=IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
SHELL

"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();
IronPdf.Installation.Initialize();
SHELL

Ubuntu Linux DockerFiles

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

Ubuntu 22 con .NET 8

Por favor, cambia el usuario de 'app' a 'root'. Esto garantizará que se conceden suficientes permisos a la biblioteca. Con este cambio, no será necesario establecer 'rwx' para el IronCefSubprocess.

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 partir de 2023, Alpine todavía utiliza librerías de lenguaje C "musl" obsoletas que no permiten a los desarrolladores de chromium soportar completamente este SO todavía.

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 al 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 pull ironsoftwareofficial/ironpdfengine
SHELL
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine
SHELL

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"]
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"]
SHELL

Visita el repositorio de Docker para explorar imágenes adicionales preconfiguradas para ejecutar IronPdf.