Как запустить 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, смотрите примеры.