Comment exécuter Aspose.HTML dans Docker – Exécuter la conversion et le traitement HTML n'importe où

Conteneur Docker

Docker est une plateforme open-source populaire qui vous permet d’automatiser le déploiement et la gestion d’applications dans des conteneurs. Les conteneurs présentent de nombreuses caractéristiques et avantages : ils offrent un environnement léger et isolé pour l’exécution des applications et leur permettent de fonctionner de manière cohérente sur différents systèmes d’exploitation et infrastructures.

Le conteneur est comme une machine virtuelle. Il peut être installé, supprimé, arrêté, repris ou connecté au terminal. Le conteneur docker est donc un logiciel exécutable léger et autonome qui comprend tout ce qui est nécessaire à l’exécution d’une application : le code, le moteur d’exécution, les outils système, les bibliothèques système et les paramètres.

Dans cet article, nous verrons comment conteneuriser une application .NET avec Docker et intégrer la fonctionnalité Aspose.HTML dans votre projet. Vous trouverez ici des instructions pas à pas sur la manière d’exécuter Aspose.HTML dans Docker – comment créer une application console et configurer un fichier Docker.

Configuration requise

Avant de pouvoir exécuter Aspose.HTML dans Docker, vous devez installer Docker sur votre système. Pour installer Docker Desktop avec succès, vous devez vous assurer que votre système répond à la configuration minimale requise pour l’installation de Docker. Pour plus d’informations sur l’installation de Docker sur Windows, Mac ou Linux, suivez les liens :

Comment créer une application console avec le support de Docker

Prenons un exemple : nous créons une simple Application console ConsoleApp qui convertit un document HTML (document.html) et le sauvegarde au format TIFF. Cette application peut être compilée et exécutée dans Docker. Pour créer un projet d’application console, suivez quelques étapes :

  1. Ouvrez un Visual Studio (Visual Studio 2022 est utilisé dans l’exemple), et à l’étape “Create a new project”, sélectionnez une Console App C#.

Créer une nouvelle application console

  1. Laissez le répertoire et les paramètres du projet de l’application console par défaut (comme dans l’exemple), ou indiquez les vôtres :

Définir le répertoire et les paramètres du projet d’application console

  1. Choisissez .NET 6.0 (Long-term support) dans le menu Framework.

Choisissez .NET 6.0 (Long-term support) dans le menu Framework

  1. Ajoutez la prise en charge de Docker au projet et sélectionnez le système d’exploitation Linux cible.

Ajouter le support docker au projet

Après avoir ajouté la prise en charge de Docker, un fichier Docker est créé avec le contenu par défaut.

Comment configurer un fichier Docker

En configurant correctement le fichier Docker, vous pouvez définir les étapes de construction d’une image Docker et créer un environnement conteneurisé qui inclut toutes les dépendances et configurations nécessaires à l’exécution de votre application.

  1. Voici le contenu du fichier Docker par défaut :
 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. Vous devez modifier le fichier Dockerfile, installer les polices nécessaires et configurer la prise en charge de l’encodage UTF-8.
 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 est un fichier texte qui contient un ensemble d’instructions utilisées pour construire une image Docker. Il peut être divisé en quatre blocs distincts : base runtime stage, build stage, publish stage, et final runtime stage. Passons en revue les étapes d’un fichier Docker et leur signification :

  1. Le base runtime stage fournit l’environnement d’exécution et installe les dépendances nécessaires à la gestion des polices et au rendu des images dans le conteneur.
  1. Le build stage regroupe les étapes de restauration des dépendances et de compilation de l’application .NET.
  1. Le publish stage déclare l’application pour le déploiement.
  1. Le final runtime stage exécute l’application au démarrage du conteneur docker.

Ces quatre blocs du fichier Docker fonctionnent ensemble pour construire une image Docker en plusieurs étapes. Les étapes initiales de base et de construction sont utilisées pour installer les dépendances, restaurer les paquets et construire l’application. La publication suivante et les blocs finaux sont utilisés pour publier l’application en vue de son déploiement et de son exécution lorsque le conteneur démarre.

Exemple d’application console

Dans l’exemple, nous proposons d’utiliser un programme simple qui convertit un document HTML en format d’image 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}

Configurer l’application console et exécuter Aspose.HTML dans Docker

  1. Pour exécuter Aspose.HTML dans Docker, installez la dernière version d’Aspose.HTML et System.Drawing.Common 6.0 à partir de NuGet.

Installer la dernière version d’Aspose.HTML à partir de NuGet

Installer System.Drawing.Common 6.0 depuis NuGet

  1. Editez le projet ConsoleApp.csproj – ajoutez l’option InvariantGlobalization = false :

Le fichier suivant est un fichier de projet .NET qui définit les paramètres du projet, les dépendances et les fichiers supplémentaires nécessaires pour créer une application exécutable. <InvariantGlobalization> est un élément supplémentaire qui désactive le comportement de globalisation invariante dans le projet. S’il vaut false, le projet utilisera le comportement de globalisation par défaut.

 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. Définissez la propriété “Сopy to Output Directory” pour le fichier converti :

Définir la propriété “Сopy to Output Directory” pour le fichier converti

  1. Lorsque toutes les dépendances et propriétés requises sont ajoutées, exécutez la conversion HTML to TIFF pour Linux dans un conteneur Docker en cliquant sur le bouton vert.

Exécuter docker

Aide et soutien

Si vous avez besoin d’aide ou si vous avez des questions sur l’exécution d’Aspose.HTML dans Docker, veuillez contacter Free Support Forum ou Free Consulting. Nous serons heureux de vous aider !

Voir aussi

Close
Loading

Analyzing your prompt, please hold on...

An error occurred while retrieving the results. Please refresh the page and try again.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.