Ejecutar IronPDF como un Contenedor Remoto

This article was translated from English: Does it need improvement?
Translated
View the article in English

El IronPdfEngine es un servicio independiente que puede manejar la creación, escritura, edición y lectura de PDFs. IronPDF Docker está preparado para ejecutar servicios Docker con versiones compatibles de IronPDF(v2023.2.x y superior). Esto ayudará a los desarrolladores a erradicar los problemas de despliegue que puedan estar experimentando con IronPDF.

Por qué ejecutar IronPDF como su propio contenedor es una buena idea

Para funcionar, IronPDF necesita los binarios Chrome y Pdfium, cuyo tamaño es enorme.(cientos de MB). También requiere la instalación de varias dependencias en la máquina.

Utilizando este método, su cliente sólo ocupará una fracción del tamaño(en MB).

Evitar problemas de implantación

Puede resultar difícil configurar el entorno/contenedor para incluir correctamente todas las dependencias. El uso del contenedor Docker IronPDF significa que IronPDF viene preinstalado y garantizado para funcionar, evitando todos los dolores de cabeza de despliegue y dependencia.

Versiones

La etiqueta IronPDF Docker se basa en la versión del propio IronPdfEngine. No es la misma versión que el producto IronPDF.

Cada versión IronPDF tendrá su propia versión IronPdfEngine asociada. El número de versión debe coincidir con la versión Docker de IronPDF.

Por ejemplo: Para IronPDF for Java versión 2023.2.1 se requiere IronPdfEngine versión 2023.2.1. No se pueden utilizar versiones de IronPdfEngine e IronPDF que no coincidan.


Cómo utilizar IronPDF Docker

Instalar IronPDF

Añada el paquete Nuget IronPdf.Slim a su proyecto.

https://www.nuget.org/packages/IronPdf.Slim/

Nota: Los paquetes IronPdf, IronPdf.Linux e IronPdf.MacOs contienen todos IronPdf.Slim..

Para reducir el tamaño de la aplicación, recomendamos instalar sólo IronPdf.Slim. El paquete IronPdf.Native.Chrome.xxx ya no se utiliza, por lo que puedes eliminarlo de tu proyecto.

Determinar la Versión Requerida del Contenedor

Por defecto, la versión de IronPDF para Docker coincidirá con la versión actual de IronPDF en NuGet. Puede utilizar el siguiente código para verificar la versión manualmente:

:path=/static-assets/pdf/content-code-examples/how-to/ironpdfengine-docker-version.cs
string ironPdfEngineVersion = IronPdf.Installation.IronPdfEngineVersion;
Dim ironPdfEngineVersion As String = IronPdf.Installation.IronPdfEngineVersion
VB   C#

Configuración de IronPDF para contenedor de Docker

Sin Docker Compose

Ejecuta el contenedor de Docker utilizando la versión del paso anterior.

  • Docker debe estar instalado.

    Configuración

  1. Visite https://hub.docker.com/r/ironsoftwareofficial/ironpdfengine

  2. Extrae la última imagen de ironsoftwareofficial/ironpdfengine
docker pull ironsoftwareofficial/ironpdfengine

O extraiga la versión específica(recomendado)

docker pull ironsoftwareofficial/ironpdfengine:2023.12.6
  1. Ejecute el contenedor ironsoftwareofficial/ironpdfengine.

    Este comando creará un contenedor y se ejecutará en segundo plano con el puerto 33350

docker run -d -e IRONPDF_ENGINE_LICENSE_KEY=MY_LICENSE_KEY --network=ironpdf-network --ip=172.19.0.2 --name=ironpdfengine --hostname=ironpdfengine -p 33350:33350 ironsoftwareofficial/ironpdfengine:2023.12.6

Con Docker Compose

La clave es configurar una red Docker que permita que IronPdfEngine y tu aplicación se vean entre sí. Establece 'depends_on' para asegurarte de que IronPdfEngine está instalado antes de que se inicie tu aplicación.

Configuración

  1. Comience por crear un archivo docker-compose.yml. Configure su archivo Docker Compose utilizando la siguiente plantilla:
version: "3.6"
services:
  myironpdfengine:
    container_name: ironpdfengine
    image: ironsoftwareofficial/ironpdfengine:latest
    ports:
      - "33350:33350"
    networks:
      - ironpdf-network
  myconsoleapp:
    container_name: myconsoleapp
    build:
      # enter YOUR project directory path here
      context: ./MyConsoleApp/
      # enter YOUR dockerfile name here, relative to project directory
      dockerfile: Dockerfile
    networks:
      - ironpdf-network
    depends_on:
      myironpdfengine:
        condition: service_started
networks:
  ironpdf-network: 
    driver: "bridge"
  1. Establece la dirección de IronPdfEngine dentro de tu aplicación(myconsoleapp) a "myironpdfengine:33350"

  2. Ejecutar docker compose
docker compose up --detach --force-recreate --remove-orphans --timestamps

Conéctate a IronPdfEngine

Ejecute su código IronPDF, su aplicación ahora habla con el IronPdfEngine en Docker!

:path=/static-assets/pdf/content-code-examples/how-to/ironpdfengine-docker-use.cs
using IronPdf;
using IronPdf.GrpcLayer;

// Configure for Docker container
var config = new IronPdfConnectionConfiguration();
config.ConnectionType = IronPdfConnectionType.Docker;
IronPdf.Installation.ConnectToIronPdfHost(config);

// Use IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>");
pdf.SaveAs("ironpdf.pdf");
Imports IronPdf
Imports IronPdf.GrpcLayer

' Configure for Docker container
Private config = New IronPdfConnectionConfiguration()
config.ConnectionType = IronPdfConnectionType.Docker
IronPdf.Installation.ConnectToIronPdfHost(config)

' Use IronPDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>")
pdf.SaveAs("ironpdf.pdf")
VB   C#

Implementar IronPdfEngine en AWS ECS

Requisitos previos

Configurar

  1. Crear un clúster ECS. Siga esta guía encreación de un clúster para el tipo de lanzamiento Fargate y External mediante la consola.

  2. Crear una definición de tarea. Siga esta guía paracreación de una definición de tarea mediante la consola.

    Ajustes recomendados:

    • AWS Fargate
    • Se recomienda un mínimo de 1 vCPU con 2 GB de RAM. Dependiendo de su carga de trabajo, si trabaja con PDF de más de 10 páginas o experimenta solicitudes de carga pesada, seleccione un nivel superior.
    • Modo de red: awsvpc
    • Asignaciones de puertos:
    "containerPort": 33350,
    "hostPort": 33350,
    "protocol": "tcp",
    "appProtocol": "grpc"
  • Image URI: apunta a cualquier IronPdfEngine nuestro. Por ejemplo, "ironsoftwareofficial/ironpdfengine:2024.1.20"(de DockerHub)
  • Permiso AWS y Redes son por tu cuenta
  • Se recomienda habilitar Amazon CloudWatch. (Activar el registro)
  • El orden de inicio del contenedor es necesario si desea desplegar su contenedor de aplicaciones en la misma definición de tarea.
  1. Ejecutar una definición de tarea. Puede ejecutar una definición de tarea como Tarea o Servicio. Siga esta guía encreación de un servicio mediante la consola.

    Ajustes recomendados:

    • Tipo de lanzamiento: AWS Fargate
    • IP pública: activada para pruebas y desactivada para producción. La seguridad y las redes de AWS corren por tu cuenta.
  2. Disfrute de! El docker IronPdfEngine está listo y funcionando en su AWS!

    Atención
    No se admite el escalado horizontal. Consulte elLimitación de IronPdfEngine para más información.


Implementar IronPdfEngine en instancias de contenedor Azure

Requisitos previos

Configurar

  1. Crear un contenedor Azure. Siga esteguía de inicio rápido sobre el despliegue de una instancia de contenedor en Azure mediante el portal Azure.

    Ajustes recomendados:

    • Fuente de la imagen: Otro registro
    • Imagen: ironsoftwareofficial/ironpdfengine:2024.1.20(de Docker Hub)
    • **Tipo de sistema operativo: Linux
    • Tamaño: Mínimo 1 vCPU y 2 GiB de memoria, o superior.
    • Puerto: Puerto TCP 33350
  2. Disfrute de! IronPdfEngine docker está en funcionamiento en sus Azure Container Instances!

    Atención
    No se admite el escalado horizontal. Consulte elLimitación de IronPdfEngine para más información.


Obtención de IronPdfEngine en la galería pública de AWS ECR

Requisito previo

  • Docker debe estar instalado.

Configurar

  1. Visite https://gallery.ecr.aws/v1m9w8y1/ironpdfengine

  2. Extraer la imagen v1m9w8y1/ironpdfengine
docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine

O extraiga la versión específica(recomendado)

docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine:2023.12.6
  1. Ejecuta el contenedor ironpdfengine.

    Este comando creará un contenedor y se ejecutará en segundo plano con el puerto 33350

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

Aprenda a configurar el cliente IronPdf para utilizar IronPdfEngine navegando hasta la sección "Actualizar el código para utilizar IronPdfEngine."


Obtén IronPdfEngine del Marketplace.

Para ayudarte a comenzar rápidamente, hemos configurado IronPdfEngine tanto en los marketplaces de Azure como de AWS.

Mercado Azure

Mercado Azure

Configuración

  1. Ir aContenedor Docker IronPDF en Azure Marketplace. Haz clic en "Consíguelo ahora" y "Continuar"

  2. Complete los "Conceptos básicos", "Detalles del clúster" y "Detalles de la aplicación" para crear el servicio Kubernetes.

  3. Una vez completado el despliegue, en la barra lateral izquierda, vaya a Recursos de Kubernetes -> Ejecutar comando. Ejecute el siguiente comando:
kubectl get services
Servicio Kubernetes - comando de ejecución

Con la información de EXTERNAL-IP y PORT(S)puede configurar la conexión IronPDFEngine en consecuencia.

:path=/static-assets/pdf/content-code-examples/how-to/pull-run-ironpdfengine-azure-marketplace.cs
using IronPdf;
using IronPdf.GrpcLayer;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

IronPdfConnectionConfiguration configuration = new IronPdfConnectionConfiguration();
configuration.ConnectionType = IronPdfConnectionType.RemoteServer;
configuration.Host = "http://48.216.143.233";
configuration.Port = 80;
IronPdf.Installation.ConnectToIronPdfHost(configuration);

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
pdf.SaveAs("output.pdf");
Imports IronPdf
Imports IronPdf.GrpcLayer

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

Dim configuration As New IronPdfConnectionConfiguration()
configuration.ConnectionType = IronPdfConnectionType.RemoteServer
configuration.Host = "http://48.216.143.233"
configuration.Port = 80
IronPdf.Installation.ConnectToIronPdfHost(configuration)

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
pdf.SaveAs("output.pdf")
VB   C#

AWS Marketplace

mercado aws

Requisitos previos

  • Docker debe estar instalado.
  • AWS CLI debe estar instalado y conectado.

    Configuración

  1. Ir aIronPdfEngine en AWS Marketplace. Haga clic en "Continuar con la suscripción"

  2. Acepte las condiciones.

    Aceptar el CLUF
  3. Continuar con Confiuguración.

    Suscripción completa
  4. Tira de la imagen ironpdfengine. Este paso le mostrará un comando para extraer la imagen ironpdfengine.
    Iniciar este software

    Por ejemplo:

aws ecr get-login-password \
    --region us-east-1 
 docker login \
    --username AWS \
    --password-stdin 000000000000.dkr.ecr.us-east-1.amazonaws.com
CONTAINER_IMAGES="000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15"    
for i in $(echo $CONTAINER_IMAGES 
 sed "s/,/ /g"); do docker pull $i; done
  1. Ejecute el contenedor ironpdfengine. Este comando creará un contenedor y lo ejecutará en segundo plano con el puerto 33350.
docker run -d -p 33350:33350 000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15