Як запустити Aspose.GIS в Docker

Передумови

  • Docker має бути встановлений на вашій системі. Інформацію про те, як встановити Docker у Windows або Mac, див. посилання в розділі “Див. також”.

  • Visual Studio 2022.

  • NET Core 3.1 SDK використовується в прикладі.

Hello World Application

У цьому прикладі ви створюєте просту програму Hello World console application, яка створює складену криву та зберігає її у файлах. Потім додаток можна скомпілювати та запустити в Docker.

Створення Console Application

Щоб створити програму Hello World, виконайте наступні кроки:

  1. Після встановлення Docker переконайтеся, що він використовує Linux Containers (за замовчуванням). Якщо необхідно, виберіть опцію Switch to Linux containers з меню Docker Desktops.
  2. У Visual Studio створіть NET Core 3.1 console application.
    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, див. examples.

Див. також