Як запустити 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, виконайте наступні кроки:
- Після встановлення Docker переконайтеся, що він використовує Linux Containers (за замовчуванням). Якщо необхідно, виберіть опцію Switch to Linux containers з меню Docker Desktops.
- У Visual Studio створіть NET Core 3.1 console application.
- Встановіть останню версію Aspose.GIS з NuGet.
- Оскільки додаток буде запущено на Linux, необхідно встановити відповідні рідні ресурси Linux. Почніть із базового образу dotnet core sdk 3.1 та встановіть libgdiplus libc6-dev.
- Коли всі необхідні залежності будуть додані, напишіть просту програму, яка створює складену криву:
.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.
- Створіть Dockerfile і розмістіть його поруч із файлом рішення вашого додатка. Залиште цю назву файлу без розширення (за замовчуванням).
- У 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.
Див. також
- Install Docker Desktop on Windows
- Install Docker Desktop on Mac
- Visual Studio 2022, NET 3.1 SDK
- Switch to Linux containers option
- Додаткова інформація про .NET Core SDK