Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Docker 是一个流行的开源平台,可让您在容器中自动部署和管理应用程序。容器有许多功能和优点,为运行应用程序提供了一个轻量级的隔离环境,并允许它们在不同的操作系统和基础设施上一致运行。
容器就像一台虚拟机。它可以安装、删除、停止、恢复或连接到终端。因此,docker 容器是一个轻量级、自足的可执行软件包,其中包含运行应用程序所需的一切:代码、运行时、系统工具、系统库和设置。
在本文中,我们将探讨如何使用 docker 对 .NET 应用程序进行容器化,并将 Aspose.HTML 功能集成到您的项目中。在这里,您将逐步了解如何在 docker 中运行 Aspose.HTML–如何创建控制台应用程序和设置 Dockerfile。
在 docker 中运行 Aspose.HTML 之前,必须在系统中安装 docker。要成功安装 Docker Desktop,应确保系统满足安装 docker 的最低要求。有关如何在 Windows、Mac 或 Linux 上安装 docker 的信息,请点击以下链接:
举个例子:我们创建了一个简单的
控制台应用程序 ConsoleApp,它可以转换 HTML 文档(document.html)并将其保存为 TIFF 格式。这个应用程序可以在 docker 中构建和运行。要创建一个控制台应用程序项目,请遵循以下几个步骤:
Console App C#。



添加 docker 支持后,会创建一个包含默认内容的 Dockerfile。
通过正确配置 Dockerfile,你可以定义构建 docker 映像的步骤,并创建一个包含运行应用程序所需的所有依赖项和配置的容器化环境。
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
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"]Dockerfile 是一个文本文件,其中包含用于构建 docker 镜像的一系列指令。它可以分为四个不同的区块: docker base image、docker build image、docker publish image和 docker final image。让我们来了解一下 Dockerfile 中的步骤及其含义:
mcr.microsoft.com/dotnet/runtime:6.0。该基本映像为 .NET 应用程序提供运行时环境。/app。mcr.microsoft.com/dotnet/sdk:6.0 基本镜像。dotnet 段是容器存储库,而 sdk 段是 Docker 容器镜像名称。该映像包含 .NET 6.0 SDK,允许您构建 .NET 应用程序。/src。ConsoleApp/ 复制到容器的 /src/ConsoleApp/ 目录。dotnet restore,以还原项目的 NuGet 软件包。/scr/。dotnet build "ConsoleApp.csproj" -c Release -o /app/build 命令使用 Release 配置编译在 ConsoleApp.csproj 中指定的 .NET 应用程序,并将编译输出存储在容器内的 /app/build 目录中。FROM build AS publish 这一行是在先前的 build 阶段的基础上建立一个名为 publish 的新 docker 镜像阶段。这表明publish阶段将继承build阶段的所有文件、依赖关系和配置。dotnet publish 以发布配置为 Release 的应用程序,输出目录设置为 /app/publish。base 阶段作为基础图像。/app。publish 阶段复制到 final 阶段的当前目录。ConsoleApp.dll。Dockerfile 中的这四个模块共同构建了一个多阶段的 docker 镜像。最初的基础阶段和构建阶段用于安装依赖项、还原软件包和构建应用程序。下一个发布和最后一个区块用于发布应用程序,以便在容器启动时部署和运行。
在示例中,我们建议使用一个简单的程序,将 HTML 文档转换为 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选项:以下文件是一个 .NET 项目文件,定义了创建可执行应用程序所需的项目设置、依赖关系和附加文件。<InvariantGlobalization>是一个附加元素,用于禁用项目中的不变全球化行为。设置为 false 时,项目将使用默认的全球化行为。
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>

Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.