Cómo ejecutar Aspose.HTML en Docker – Aspose.HTML for .NET

Contenedor acoplable

Docker es una popular plataforma de código abierto que le permite automatizar la implementación y administración de aplicaciones dentro de contenedores. Los contenedores tienen muchas características y beneficios, ya que brindan un entorno liviano y aislado para ejecutar aplicaciones y les permiten trabajar de manera consistente en diferentes sistemas operativos e infraestructuras.

El contenedor es como una máquina virtual. Se puede instalar, eliminar, detener, reanudar o conectar al terminal. Por lo tanto, el contenedor Docker es un paquete de software ejecutable, liviano y autónomo que incluye todo lo necesario para ejecutar una aplicación: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema y configuraciones.

En este artículo, veremos cómo contener una aplicación .NET con Docker e integrar la funcionalidad Aspose.HTML en su proyecto. Aquí encontrará instrucciones paso a paso sobre cómo ejecutar Aspose.HTML en Docker: cómo crear una aplicación de consola y configurar un Dockerfile.

Requisitos del sistema

Antes de poder ejecutar Aspose.HTML en Docker, debe tener Docker instalado en su sistema. Para instalar Docker Desktop correctamente, debe asegurarse de que su sistema cumpla con los requisitos mínimos para la instalación de Docker. Para obtener información sobre cómo instalar Docker en Windows, Mac o Linux, siga los enlaces:

Cómo crear una aplicación de consola con soporte Docker

Consideremos el ejemplo: creamos una Aplicación de consola ConsoleApp simple que convierte un documento HTML (document.html) y lo guarda en formato TIFF. Esta aplicación se puede compilar y ejecutar en Docker. Para crear un proyecto de aplicación de consola, siga algunos pasos:

  1. Abra Visual Studio (en el ejemplo se usa Visual Studio 2022) y en la etapa “Create a new project”, seleccione una Console App C#.

Texto “Crear una nueva aplicación de consola”

  1. Deje el directorio y los parámetros para el proyecto de la aplicación de consola de forma predeterminada (como en el ejemplo) o especifique los suyos propios:

Texto “Establecer directorio y parámetros para el proyecto de aplicación de consola”

  1. Elija .NET 6.0 (soporte a largo plazo) en el menú Framework.

Texto “Сelija .NET 6.0 (soporte a largo plazo) en el menú Framework”

  1. Agregue compatibilidad con Docker al proyecto y seleccione el sistema operativo Linux de destino.

Texto “Agregar soporte Docker al proyecto”

Después de agregar compatibilidad con Docker, se crea un Dockerfile con contenido predeterminado.

Cómo configurar un archivo Docker

Al configurar correctamente Dockerfile, puede definir los pasos para crear una imagen de Docker y crear un entorno en contenedores que incluya todas las dependencias y configuraciones necesarias para ejecutar su aplicación.

  1. Aquí está el contenido predeterminado de Dockerfile:
 1#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
 2
 3FROM mcr.microsoft.com/dotnet/runtime:6.0 AS base
 4WORKDIR /app
 5
 6FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
 7WORKDIR /src
 8COPY ["ConsoleApp/ConsoleApp.csproj", "ConsoleApp/"]
 9RUN dotnet restore "ConsoleApp/ConsoleApp.csproj"
10COPY . .
11WORKDIR "/src/ConsoleApp"
12RUN dotnet build "ConsoleApp.csproj" -c Release -o /app/build
13
14FROM build AS publish
15RUN dotnet publish "ConsoleApp.csproj" -c Release -o /app/publish
16
17FROM base AS final
18WORKDIR /app
19COPY --from=publish /app/publish .
20ENTRYPOINT ["dotnet", "ConsoleApp.dll"]
  1. Debe editar el Dockerfile e instalar libgdiplus, las bibliotecas y fuentes necesarias.
 1#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
 2
 3FROM mcr.microsoft.com/dotnet/runtime:6.0 AS base
 4WORKDIR /app
 5RUN apt-get update \
 6    && apt-get install -y --no-install-recommends libgdiplus libc6-dev \
 7    && apt-get clean \
 8    && rm -rf /var/lib/apt/lists/*
 9RUN sed -i'.bak' 's/$/ contrib/' /etc/apt/sources.list
10RUN apt-get update; apt-get install -y ttf-mscorefonts-installer fontconfig
11
12FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
13WORKDIR /src
14COPY ["ConsoleApp/ConsoleApp.csproj", "ConsoleApp/"]
15RUN dotnet restore "ConsoleApp/ConsoleApp.csproj"
16COPY . .
17WORKDIR "/src/ConsoleApp"
18RUN dotnet build "ConsoleApp.csproj" -c Release -o /app/build
19
20FROM build AS publish
21RUN dotnet publish "ConsoleApp.csproj" -c Release -o /app/publish /p:UseAppHost=false
22
23FROM base AS final
24WORKDIR /app
25COPY --from=publish /app/publish .
26ENTRYPOINT ["dotnet", "ConsoleApp.dll"]

Un Dockerfile es un archivo de texto que contiene un conjunto de instrucciones que se utilizan para crear una imagen de Docker. Se puede dividir en cuatro bloques distintos: bloques docker base image, docker build image, docker publish image y docker final image. Repasemos los pasos de un Dockerfile y sus significados:

  1. La docker base image define la imagen base e instala las dependencias necesarias para manejar imágenes y fuentes en el contenedor.
  1. La docker build image contiene las instrucciones utilizadas para crear aplicaciones .NET.
  1. La docker publish image declara la aplicación para su implementación.
  1. La docker final image ejecuta la aplicación cuando se inicia el contenedor de la ventana acoplable.

Estos cuatro bloques del Dockerfile trabajan juntos para crear una imagen acoplable de varias etapas. Las etapas inicial de base y compilación se utilizan para instalar dependencias, restaurar paquetes y compilar la aplicación. Los siguientes bloques de publish y final se utilizan para publicar la aplicación para su implementación y ejecución cuando se inicia el contenedor.

Ejemplo de aplicación de consola

En el ejemplo, sugerimos utilizar un programa simple que convierte un documento HTML a un formato de imagen TIFF:

 1using Aspose.Html;
 2using Aspose.Html.Rendering.Image;
 3
 4namespace ConsoleApp
 5{
 6    internal class Program
 7    {
 8        static void Main(string[] args)
 9        {
10            using var doc = new HTMLDocument("document.html");
11            using var dev = new ImageDevice(new ImageRenderingOptions(ImageFormat.Tiff), "result.tiff");
12            doc.RenderTo(dev);
13        }
14    }
15}

Configure la aplicación de consola y ejecute Aspose.HTML en Docker

  1. Para ejecutar Aspose.HTML en la ventana acoplable, instale la última versión de Aspose.HTML y System.Drawing.Common 6.0 de NuGet.

Texto “Instalar la última versión de Aspose.HTML desde NuGet”

Texto “Instalar System.Drawing.Common 6.0 desde NuGet”

  1. Edite el proyecto ConsoleApp.csproj; agregue la opción InvariantGlobalization = false:

El siguiente archivo es un archivo de proyecto .NET que define la configuración del proyecto, las dependencias y los archivos adicionales necesarios para crear una aplicación ejecutable. <InvariantGlobalization> es un elemento adicional que deshabilita el comportamiento de globalización invariante en el proyecto. Cuando se establece en falso, el proyecto utilizará el comportamiento de globalización predeterminado.

 1<Project Sdk="Microsoft.NET.Sdk">
 2
 3  <PropertyGroup>
 4    <OutputType>Exe</OutputType>
 5    <TargetFramework>net6.0</TargetFramework>
 6    <ImplicitUsings>enable</ImplicitUsings>
 7    <Nullable>enable</Nullable>
 8    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
 9  </PropertyGroup>
10
11  <ItemGroup>
12    <PackageReference Include="Aspose.HTML" Version="23.5.0" />
13    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.14.0" />
14    <PackageReference Include="System.Drawing.Common" Version="6.0.0" />
15  </ItemGroup>
16
17  <ItemGroup>
18    <None Update="document.html">
19      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
20    </None>
21  </ItemGroup>
22
23  <ItemGroup>
24    <RuntimeHostConfigurationOption Include="System.Drawing.EnableUnixSupport" Value="true" />
25  </ItemGroup>
26  
27  <PropertyGroup>
28	  <InvariantGlobalization>false</InvariantGlobalization>
29  </PropertyGroup>
30
31</Project>
  1. Configure la propiedad “Сopy to Output Directory” para el archivo convertido:

Texto “Establezca la propiedad “Copiar en el directorio de salida” para el archivo convertido”

  1. Cuando se agreguen todas las dependencias y propiedades requeridas, ejecute la conversión de HTML a TIFF para Linux en un contenedor acoplable haciendo clic en el botón verde.

Texto “Ejecutar ventana acoplable”

Ayuda y soporte

Si necesita ayuda o tiene preguntas sobre cómo ejecutar Aspose.HTML en Docker, comuníquese con el Foro de soporte gratuito o la Consulta gratuita. ¡Estaremos encantados de ayudarte!

Ver también

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.