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



Après avoir ajouté la prise en charge de Docker, un fichier Docker est créé avec le contenu par défaut.
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#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 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 :
mcr.microsoft.com/dotnet/runtime:6.0 est spécifiée. Cette image de base fournit l’environnement d’exécution pour les applications .NET./app.libc6-dev, libgdiplus), fontconfig et les paquets de polices open-source, la prise en charge des paramètres régionaux et les certificats CA, configurent les paramètres de globalisation UTF-8 pour .NET, reconstruisent le cache de polices et nettoient le cache de paquets afin de minimiser la taille de l’image.mcr.microsoft.com/dotnet/sdk:6.0. Le segment dotnet est le référentiel du conteneur, tandis que le segment sdk est le nom de l’image du conteneur docker. L’image inclut le SDK .NET 6.0, ce qui vous permet de créer votre application .NET./src.ConsoleApp/ vers le répertoire /src/ConsoleApp/ du conteneur.dotnet pour restaurer les paquets NuGet du projet./scr/.dotnet build "ConsoleApp.csproj" -c Release -o /app/build compile l’application .NET spécifiée dans ConsoleApp.csproj en utilisant la configuration Release et stocke la sortie de la compilation dans le répertoire /app/build à l’intérieur du conteneur.FROM build AS publish met en place un nouveau stage d’image docker nommé publish basé sur le stage build précédent. Cela indique que l’étape publish héritera de tous les fichiers, dépendances et configurations de l’étape build.dotnet publish pour publier l’application dans la configuration Release, le répertoire de sortie étant /app/publish.base comme image de base./app.publish vers le répertoire courant de l’étape final.ConsoleApp.dll.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.
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}

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>

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