Как да стартирате Aspose.CAD в Docker
Предварителни изисквания
- Docker трябва да бъде инсталиран на вашата система. За информация как да инсталирате Docker на Windows или Mac, се запознайте с линковете в секцията “Вижте също”.
- Visual Studio 2022.
- NET 6 SDK се използва в примера.
Hello World Приложение
В този пример създавате просто Hello World конзолно приложение, което рисува елипса и я запазва като изображение. Приложението след това може да бъде компилирано и стартирано в Docker.
Създаване на Конзолно Приложение
За да създадете програмата Hello World, следвайте стъпките по-долу:
- След като Docker е инсталиран, уверете се, че използва Linux контейнери (по подразбиране). При необходимост изберете опцията “Смяна на Linux контейнери” от менюто на Docker Desktop.
- В Visual Studio, създайте NET 6 конзолно приложение.
- Инсталирайте най-новата версия на Aspose.CAD от NuGet.
- Тъй като приложението ще се стартира под Linux, може да се наложи да инсталирате допълнителни шрифтове. Можете да предпочетете ttf-mscorefonts-installer.
- Когато всички необходими зависимости са добавени, напишете проста програма, която създава елипса и я запазва като изображение:
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.
- Създайте Dockerfile и го поставете до файла на решението на вашето приложение. Запазете това име на файл без разширение (по подразбиране).
- В 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, вижте примерите.