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? más informaciónIronPdfEngine.

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?

Además de una excelente escalabilidad empresarial, los contenedores Docker en Azure disfrutan de más permisos que las aplicaciones web normales.

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 usted, le recomendamos este excelente artículo sobreconfiguración de la depuración e integración de Docker con proyectos de Visual Studio.

También le recomendamos encarecidamente que lea nuestroGuía de instalación y compatibilidad de IronPDF con 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 utilizar elIronPdf.Linux NuGet Package en lugar delIronPDF Package para ahorrar espacio en disco y evitar que se descarguen activos 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 añadir simplementeIronPdf.Native.Chrome.Linux encima delIronPDF Paquete NuGet.

Install-Package IronPdf.Native.Chrome.Linux

Evite la instalación automática de dependencias

Muchos usuarios informan de mejores resultados con Linux y Docker cuando LinuxAndDockerDependenciesAutoConfig está en false. Esto se debe a que los requisitos previos ya están instalados por los gestores de paquetes de estilo apt-get ya en sus 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 que lo desactive para implementaciones Docker:

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

"Inicialización "anticipada

Opcionalmente, también puede llamar al comando IronPdf.Installation.Initialize() método para iniciar manualmente IronPDF. 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

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 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 a la tarjeta gráfica virtual.

El artículo 'Herramientas de Visual Studio para contenedores Dockeres una magnífica guía para empezar.

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 elRepositorio Docker para explorar otras imágenes preconfiguradas para ejecutar IronPdf.