Как да стартирате 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, вижте примерите.

Вижте Също