Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Docker – популярная платформа с открытым исходным кодом, позволяющая автоматизировать развертывание и управление приложениями внутри контейнеров. Контейнеры имеют множество функций и преимуществ, предоставляя облегченную и изолированную среду для запуска приложений и позволяя им согласованно работать в разных операционных системах и инфраструктурах.
Контейнер похож на виртуальную машину. Его можно установить, удалить, остановить, возобновить или подключить к терминалу. Итак, docker container – это легкий автономный исполняемый программный пакет, который включает в себя все необходимое для запуска приложения: код, среду выполнения, системные инструменты, системные библиотеки и настройки.
В этой статье мы рассмотрим, как контейнеризовать приложение .NET с помощью docker и интегрировать функциональность Aspose.HTML в ваш проект. Здесь вы найдете пошаговые инструкции о том, как запустить Aspose.HTML в docker – как создать консольное приложение и настроить Dockerfile.
Прежде чем вы сможете запустить Aspose.HTML в docker, в вашей системе должен быть установлен docker. Чтобы успешно установить Docker Desktop, вы должны убедиться, что ваша система соответствует минимальным требованиям для установки Docker. Для получения информации о том, как установить Docker на Windows, Mac или Linux, перейдите по ссылкам:
Рассмотрим пример: мы создаем простое
Консольное приложение ConsoleApp, которое преобразует документ HTML (document.html) и сохраняет его в формате TIFF. Это приложение вы можете собрать и запустить в docker. Чтобы создать проект консольного приложения, выполните несколько шагов:




После добавления поддержки 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. Образ включает пакет SDK для .NET 6.0, позволяющий создавать приложения .NET./src.ConsoleApp/ в каталог контейнера /src/ConsoleApp/.dotnet restore для восстановления пакетов NuGet для проекта.
– Команда COPY указывает docker скопировать указанную папку на вашем компьютере в папку в контейнере докера – /scr/.dotnet build "ConsoleApp.csproj" -c Release -o /app/build компилирует приложение .NET, указанное в ConsoleApp.csproj, используя конфигурацию Release, и сохраняет выходные данные сборки в /app/build внутри контейнера.FROM build AS publish устанавливает новую стадию образа docker с именем publish на основе предыдущей стадии build. Это указывает на то, что этап publish унаследует все файлы, зависимости и конфигурации от этапа build.dotnet publish, чтобы опубликовать приложение в конфигурации Release, с выходным каталогом, заданным как /app/publish./app.publish в текущий каталог на final этапе.ConsoleApp.dll.Эти четыре блока в Dockerfile работают вместе для создания многоэтапного образа Docker. Начальные base и build этапы используются для установки зависимостей, восстановления пакетов и сборки приложения. Следующие publish и final блоки используются для публикации приложения для развертывания и запуска при старте контейнера.
В примере мы предлагаем использовать простую программу, которая конвертирует 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>

Помощь и поддержка
Если вам нужна помощь или у вас есть вопросы по запуску Aspose.HTML в docker, обратитесь на Форум бесплатной поддержки или воспользуйтесь Бесплатной консультацией. Мы будем рады вам помочь!
Смотрите также
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.