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#.

Texte “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 :

Texte “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.

Texte “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.

Texte “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 éditer le fichier Docker et installer libgdiplus, les bibliothèques et les polices nécessaires.
 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 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 : docker base image, l’image de construction Docker, docker publish image, et docker final image. Passons en revue les étapes d’un fichier Docker et leur signification :

  1. L’image de base docker définit l’image de base et installe les dépendances nécessaires pour gérer les images et les polices dans le conteneur.
  1. L’image docker build contient les instructions utilisées pour construire les applications .NET.
  1. L’image docker publish déclare l’application pour le déploiement.
  1. L’image docker final image 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.

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

Texte “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 :

Texte “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.

Texte “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

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.