Wie man Aspose.HTML in Docker ausführt

Docker-Container

Docker ist eine beliebte Open-Source-Plattform, mit der Sie die Bereitstellung und Verwaltung von Anwendungen in Containern automatisieren können. Container haben viele Funktionen und Vorteile. Sie bieten eine leichtgewichtige und isolierte Umgebung für die Ausführung von Anwendungen und ermöglichen deren konsistente Nutzung auf verschiedenen Betriebssystemen und Infrastrukturen.

Der Container ist wie eine virtuelle Maschine. Er kann installiert, gelöscht, gestoppt, wiederaufgenommen oder mit dem Terminal verbunden werden. Der Docker-Container ist also ein leichtgewichtiges, in sich geschlossenes, ausführbares Softwarepaket, das alles enthält, was zur Ausführung einer Anwendung erforderlich ist: Code, Laufzeit, Systemtools, Systembibliotheken und Einstellungen.

In diesem Artikel sehen wir uns an, wie man eine .NET-Anwendung mit Docker containerisiert und Aspose.HTML-Funktionalität in Ihr Projekt integriert. Hier finden Sie eine Schritt-für-Schritt-Anleitung, wie Sie Aspose.HTML in Docker ausführen können – wie Sie eine Konsolenanwendung erstellen und ein Dockerfile einrichten.

Systemvoraussetzungen

Bevor Sie Aspose.HTML in Docker ausführen können, müssen Sie Docker auf Ihrem System installiert haben. Um Docker Desktop erfolgreich zu installieren, sollten Sie sicherstellen, dass Ihr System die Mindestanforderungen für die Installation von Docker erfüllt. Für Informationen über die Installation von Docker unter Windows, Mac oder Linux folgen Sie den Links:

Wie man eine Konsolenanwendung mit Docker-Unterstützung erstellt

Betrachten wir das Beispiel: Wir erstellen eine einfache Konsolenanwendung ConsoleApp, die ein HTML-Dokument (document.html) konvertiert und im TIFF-Format speichert. Diese Anwendung können Sie in Docker erstellen und ausführen. Um ein Projekt für eine Konsolenanwendung zu erstellen, führen Sie einige Schritte aus:

  1. Öffnen Sie ein Visual Studio (im Beispiel wird Visual Studio 2022 verwendet), und wählen Sie auf der Stufe “Create a new project” eine Console App C#.

Text “Erstellen Sie eine neue Konsolenanwendung”

  1. Belassen Sie das Verzeichnis und die Parameter für das Konsolenanwendungsprojekt in der Voreinstellung (wie im Beispiel), oder geben Sie Ihre eigenen an:

Text “Verzeichnis und Parameter für das Projekt der Konsolenanwendung festlegen”

  1. Wählen Sie .NET 6.0 (Langzeitunterstützung) aus dem Menü Framework aus.

Text “Сhoose the .NET 6.0 (Long-term support) from the Framework menu” (Wählen Sie .NET 6.0 (Langzeitunterstützung) aus dem Framework-Menü)

  1. Fügen Sie dem Projekt Docker-Unterstützung hinzu und wählen Sie das Ziel-Linux-Betriebssystem.

Text “Docker-Unterstützung zum Projekt hinzufügen”

Nach dem Hinzufügen der Dockerunterstützung wird eine Dockerdatei mit Standardinhalt erstellt.

Konfigurieren eines Dockerfiles

Durch die korrekte Konfiguration des Dockerfiles können Sie die Schritte zur Erstellung eines Docker-Images definieren und eine containerisierte Umgebung erstellen, die alle notwendigen Abhängigkeiten und Konfigurationen zur Ausführung Ihrer Anwendung enthält.

  1. Hier ist der Standardinhalt des Dockerfiles:
 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. Sie müssen die Dockerdatei bearbeiten und libgdiplus, die erforderlichen Bibliotheken und Schriftarten installieren.
 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"]

Ein Dockerfile ist eine Textdatei, die eine Reihe von Anweisungen enthält, die zum Erstellen eines Docker-Images verwendet werden. Sie kann in vier verschiedene Blöcke unterteilt werden: docker base image, docker build image, docker publish image und docker final image. Gehen wir die Schritte in einer Dockerdatei und ihre Bedeutung durch:

  1. Das docker base image definiert das Basis-Image und installiert die notwendigen Abhängigkeiten, die für den Umgang mit Bildern und Schriftarten im Container benötigt werden.
  1. Das docker build image enthält die Anweisungen zum Erstellen von .NET-Anwendungen.
  1. Das docker publish image deklariert die Anwendung für die Bereitstellung.
  1. Das docker final image führt die Anwendung aus, wenn der Docker-Container startet.

Diese vier Blöcke im Dockerfile arbeiten zusammen, um ein mehrstufiges Docker-Image zu erstellen. Die anfängliche Base- und Build-Phase wird verwendet, um Abhängigkeiten zu installieren, Pakete wiederherzustellen und die Anwendung zu erstellen. Die nächsten Blöcke “publish” und “final” werden für die Veröffentlichung der Anwendung für die Bereitstellung und die Ausführung beim Start des Containers verwendet.

Beispiel für eine Konsolenanwendung

In diesem Beispiel wird ein einfaches Programm vorgeschlagen, das ein HTML-Dokument in ein TIFF-Bildformat konvertiert:

 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}

Konfigurieren der Konsolenanwendung und Ausführen von Aspose.HTML in Docker

  1. Um Aspose.HTML in Docker auszuführen, installieren Sie die neueste Aspose.HTML-Version und System.Drawing.Common 6.0 aus NuGet.

Text “Installieren Sie die neueste Version von Aspose.HTML aus NuGet”

Text “Installieren Sie die System.Drawing.Common 6.0 von NuGet”

  1. Bearbeiten Sie das Projekt ConsoleApp.csproj - fügen Sie die Option InvariantGlobalization = false hinzu:

Die folgende Datei ist eine .NET-Projektdatei, die die Projekteinstellungen, Abhängigkeiten und zusätzlichen Dateien definiert, die zum Erstellen einer ausführbaren Anwendung erforderlich sind. <InvariantGlobalization> ist ein zusätzliches Element, das das invariante Globalisierungsverhalten im Projekt deaktiviert. Wenn es auf false gesetzt ist, verwendet das Projekt das Standard-Globalisierungsverhalten.

 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. Setzen Sie die Eigenschaft “Сopy to Output Directory” für die konvertierte Datei:

Text “Setzen Sie die Eigenschaft “Сopy to Output Directory” für die konvertierte Datei”

  1. Wenn alle erforderlichen Abhängigkeiten und Eigenschaften hinzugefügt sind, führen Sie die HTML-zu-TIFF-Konvertierung für Linux in einem Docker-Container aus, indem Sie auf die grüne Schaltfläche klicken.

Text “Docker ausführen”

Hilfe & Support

Wenn Sie Hilfe benötigen oder Fragen zum Betrieb von Aspose.HTML in Docker haben, wenden Sie sich bitte an Free Support Forum oder Free Consulting. Wir helfen Ihnen gerne weiter!

Siehe auch

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.