Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
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.
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:
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:
Console App C#.



Después de agregar compatibilidad con Docker, se crea un Dockerfile con contenido predeterminado.
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#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# 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
3# ---------- Base runtime stage ----------
4# .NET runtime + font and globalization support
5FROM mcr.microsoft.com/dotnet/runtime:6.0 AS base
6WORKDIR /app
7
8# Install fonts, fontconfig, locale support, and CA certificates
9RUN apt-get update && apt-get install -y --no-install-recommends \
10 libc6-dev \
11 libgdiplus \
12 fontconfig \
13 fonts-dejavu-core \
14 fonts-dejavu-extra \
15 fonts-liberation \
16 fonts-freefont-ttf \
17 locales \
18 ca-certificates \
19 && rm -rf /var/lib/apt/lists/*
20
21# Enable and generate UTF-8 locale
22RUN sed -i 's/# \(en_US.UTF-8 UTF-8\)/\1/' /etc/locale.gen \
23 && locale-gen
24
25# Configure globalization
26ENV LANG=en_US.UTF-8 \
27 LANGUAGE=en_US:en \
28 LC_ALL=en_US.UTF-8 \
29 DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
30
31# Build font cache (useful for predictable font discovery)
32RUN fc-cache -f -v
33
34# ---------- Build stage ----------
35# Restore and build the application
36FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
37WORKDIR /src
38COPY ["ConsoleApp/ConsoleApp.csproj", "ConsoleApp/"]
39RUN dotnet restore "ConsoleApp/ConsoleApp.csproj"
40COPY . .
41WORKDIR "/src/ConsoleApp"
42RUN dotnet build "ConsoleApp.csproj" -c Release -o /app/build
43
44# ---------- Publish stage ----------
45FROM build AS publish
46RUN dotnet publish "ConsoleApp.csproj" -c Release -o /app/publish /p:UseAppHost=false
47
48# ---------- Final runtime stage ----------
49FROM base AS final
50WORKDIR /app
51COPY --from=publish /app/publish .
52ENTRYPOINT ["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 base runtime stage, build stage, publish stage y final runtime stage. Repasemos los pasos de un Dockerfile y sus significados:
mcr.microsoft.com/dotnet/runtime:6.0. Esta imagen base proporciona el entorno de ejecución para aplicaciones .NET./app.libc6-dev, libgdiplus), fontconfig y paquetes de fuentes de código abierto, soporte regional y certificados CA, configuran los ajustes de globalización UTF-8 para .NET, reconstruyen el caché de fuentes y limpian el caché de paquetes para minimizar el tamaño de la imagen.mcr.microsoft.com/dotnet/sdk:6.0. El segmento dotnet es el repositorio del contenedor, mientras que el segmento sdk es el nombre de la imagen del contenedor acoplable. La imagen incluye el SDK de .NET 6.0, lo que le permite crear su aplicación .NET./src.ConsoleApp/ al directorio /src/ConsoleApp/ del contenedor.dotnet restore para restaurar los paquetes NuGet para el proyecto./scr/.dotnet build "ConsoleApp.csproj" -c Release -o /app/build compila la aplicación .NET especificada en ConsoleApp.csproj usando la configuración Release y almacena el resultado de la compilación en /app/build dentro del contenedor.FROM build AS publish configura una nueva etapa de imagen acoplable llamada publish basada en la etapa anterior build. Esto indica que la etapa publish heredará todos los archivos, dependencias y configuraciones de la etapa build.dotnet publish para publicar la aplicación en la configuración Release, con el directorio de salida configurado como /app/publish.base como imagen base./app.publish al directorio actual en la etapa final.ConsoleApp.dll.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.
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}

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>

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
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.