Как да стартирате Aspose.GIS в Docker

Предварителни условия

  • Docker трябва да бъде инсталиран на вашата система. За информация как да инсталирате Docker на Windows или Mac, вижте връзките в секцията “Вижте също”.

  • Visual Studio 2022.

  • NET Core 3.1 SDK се използва в примера.

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

В този пример създавате просто Hello World конзолно приложение, което създава съставна крива и я запазва във файлове. Приложението може след това да бъде компилирано и изпълнено в Docker.

Създаване на конзолното приложение

За да създадете програмата Hello World, следвайте стъпките по-долу:

  1. След като Docker е инсталиран, уверете се, че използва Linux контейнери (по подразбиране). Ако е необходимо, изберете опцията Switch to Linux containers от менюто на Docker Desktops.
  2. Във Visual Studio създайте NET Core 3.1 конзолно приложение.
    todo:image_alt_text
  3. Инсталирайте най-новата версия на Aspose.GIS от NuGet.
    todo:image_alt_text
  4. Тъй като приложението ще се изпълнява на Linux, трябва да бъдат инсталирани подходящите родни Linux активи. Започнете с основния образ на dotnet core sdk 3.1 и инсталирайте libgdiplus libc6-dev.
  5. Когато всички необходими зависимости са добавени, напишете проста програма, която създава съставна крива:
    .NET
    using System.IO;
    using Aspose.Gis.Geometries;
    using Aspose.Gis;
    
    namespace Aspose.GIS.Docker.Sample
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                string path = Path.Combine("TestOut", "CreateCompoundCurve_out.shp");
                using (VectorLayer layer = VectorLayer.Create(path, Drivers.Shapefile))
                {
                    var feature = layer.ConstructFeature();
                    // create an 'S' letter (starts at bottom left end)
                    var compoundCurve = new CompoundCurve();
    
                    var bottom = (ILineString)Geometry.FromText("LineString (0 0, 3 0)");
                    var firstArc = (ICircularString)Geometry.FromText("CircularString (3 0, 4 1, 3 2)");
                    var middle = (ILineString)Geometry.FromText("LineString (3 2, 1 2)");
                    var secondArc = (ICircularString)Geometry.FromText("CircularString (1 2, 0 3, 1 4)");
                    var top = (ILineString)Geometry.FromText("LineString (1 4, 4 4)");
    
                    compoundCurve.AddCurve(bottom);
                    compoundCurve.AddCurve(firstArc);
                    compoundCurve.AddCurve(middle);
                    compoundCurve.AddCurve(secondArc);
                    compoundCurve.AddCurve(top);
                    feature.Geometry = compoundCurve;
    
                    layer.Add(feature);
                }
            }
        }
    }
    

Забележете, че папката �TestOut� е посочена като изходна папка за запазване на изходните документи. Когато изпълнявате приложението в Docker, папка от хост машината ще бъде монтирана към тази папка в контейнера. Това ще ви позволи лесно да видите изхода, генериран от Aspose.GIS в Docker контейнера.

Конфигуриране на Dockerfile

Следващата стъпка е да създадете и конфигурирате Dockerfile.

  1. Създайте Dockerfile и го поставете до файла с решението на вашето приложение. Запазете този файл без разширение (по подразбиране).
  2. В Dockerfile посочете:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster 
WORKDIR /app
COPY . ./
RUN apt-get update && \
    apt-get install -y --allow-unauthenticated libgdiplus libc6-dev
RUN dotnet publish "Aspose.GIS.Docker.Sample.csproj" -c Release -o /app/out
ENTRYPOINT ["dotnet", "out/Aspose.GIS.Docker.Sample.dll"]

Горното е прост Dockerfile, който съдържа следните инструкции:

  • Изображението на SDK, което трябва да се използва. Тук това е изображението Net 3.1. Docker ще го изтегли, когато бъде изпълнена компилацията. Версията на SDK е посочена като таг.
  • Работната директория, която е посочена в следващия ред.
  • Командата за инсталиране на libgdiplus се изпълнява в контейнера. Това е необходимо от System.Drawing.Common.
  • Командата за копиране на всичко в контейнер, публикуване на приложението и определяне на входната точка.

Компилиране и стартиране на приложението в Docker

Сега приложението може да бъде компилирано и изпълнено в Docker. Отворете любимата си командна линия, променете директорията към папката с приложението (папката, където са разположени файловете с решението и Dockerfile) и изпълнете следната команда:

docker build -t dockerfile .

Първия път, когато тази команда бъде изпълнена, може да отнеме повече време, тъй като Docker трябва да изтегли необходимите изображения. След като горната команда е завършена, изпълнете следната команда:

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

Повече примери

За повече примери как можете да използвате Aspose.GIS в Docker, вижте примерите.

Вижте също