Как запустить Aspose.CAD в Docker

Предварительные требования

  • Docker должен быть установлен на вашей системе. Для получения информации о том, как установить Docker на Windows или Mac, смотрите ссылки в разделе “См. также”.
  • Visual Studio 2022.
  • В примере используется .NET 6 SDK.

Приложение Hello World

В этом примере вы создаете простое консольное приложение Hello World, которое рисует эллипс и сохраняет его как изображение. Приложение затем можно собрать и запустить в Docker.

Создание консольного приложения

Чтобы создать программу Hello World, выполните следующие шаги:

  1. После установки Docker убедитесь, что он использует контейнеры Linux (по умолчанию). При необходимости выберите опцию Переключиться на контейнеры Linux в меню Docker Desktop.
  2. В Visual Studio создайте консольное приложение .NET 6.
    Диалоговое окно проекта консольного приложения .NET 6
  3. Установите последнюю версию Aspose.CAD из NuGet.
    Aspose.CAD на NuGet
  4. Поскольку приложение будет запущено на Linux, может потребоваться установить дополнительные шрифты. Вы можете предпочесть ttf-mscorefonts-installer.
  5. Когда все необходимые зависимости добавлены, напишите простую программу, которая создает эллипс и сохраняет его как изображение:
using (var img = Aspose.CAD.Image.Load(System.IO.Directory.GetCurrentDirectory() + "/input.dxf"))
{
	img.Save(Path.Combine("TestOut", "output.png"), new Aspose.CAD.ImageOptions.PngOptions());
}

Обратите внимание, что папка “TestOut” указана в качестве выходной папки для сохранения выходных документов. При запуске приложения в Docker папка на основном компьютере будет смонтирована в эту папку в контейнере. Это позволит вам легко просматривать вывод, сгенерированный Aspose.CAD в контейнере Docker.

Настройка Dockerfile

Следующий шаг — создать и настроить Dockerfile.

  1. Создайте Dockerfile и поместите его рядом с файлом решения вашего приложения. Сохраните это имя файла без расширения (по умолчанию).
  2. В Dockerfile укажите:
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS builder
WORKDIR /app

COPY /Aspose.CAD.Docker.Sample/*.csproj ./Aspose.CAD.Docker.Sample/
RUN dotnet restore ./Aspose.CAD.Docker.Sample/

COPY /Aspose.CAD.Docker.Sample ./Aspose.CAD.Docker.Sample/

WORKDIR /app/Aspose.CAD.Docker.Sample
RUN dotnet publish -c Release -o publish

FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
COPY --from=builder /app/Aspose.CAD.Docker.Sample/publish ./

RUN apt-get update
RUN apt-get install -y apt-utils
RUN apt-get install -y libgdiplus
RUN apt-get install -y libc6-dev 
RUN ln -s /usr/lib/libgdiplus.so/usr/lib/gdiplus.dll

RUN sed -i'.bak' 's/$/ contrib/' /etc/apt/sources.list
RUN apt-get update; apt-get install -y ttf-mscorefonts-installer fontconfig

RUN apt-get install fonts-freefont-ttf

ENV ASPNETCORE_URLS=http://+:80
ENV ASPNETCORE_ENVIRONMENT=Release

EXPOSE 80
ENTRYPOINT ["dotnet", "Aspose.CAD.Docker.Sample.dll"]

Выше представлена простой Dockerfile, который содержит следующие инструкции:

  • Изображение SDK, которое будет использоваться. Здесь это изображение .NET 6. Docker загрузит его при выполнении сборки. Версия SDK указана в качестве тега.
  • После этого вам может понадобиться установить шрифты, так как изображение SDK содержит очень мало шрифтов. Также вы можете использовать локальные шрифты, скопированные в изображение Docker.
  • Рабочий каталог, который указан в следующей строке.
  • Команда для копирования всего в контейнер, публикации приложения и указания точки входа.

Сборка и запуск приложения в Docker

Теперь приложение можно собрать и запустить в Docker. Откройте предпочитаемую командную строку, перейдите в каталог с приложением (каталог, где располагаются файл решения и Dockerfile), и выполните следующую команду:

docker build -t dockerfile .

При выполнении этой команды в первый раз она может занять больше времени, так как Docker должен загрузить необходимые образы. После завершения предыдущей команды выполните следующую команду:

docker run --mount type=bind,source=C:\Temp,target=/app/TestOut --rm dockerfile from Docker

Дополнительные примеры

Для получения дополнительных примеров того, как вы можете использовать Aspose.CAD в Docker, смотрите примеры.

См. также