Jak uruchomić Aspose.CAD w Dockerze

Wymagania wstępne

  • Docker musi być zainstalowany na twoim systemie. Aby uzyskać informacje na temat instalacji Dockera na Windows lub Mac, zapoznaj się z linkami w sekcji “Zobacz także”.
  • Visual Studio 2022.
  • W przykładzie użyto .NET 6 SDK.

Aplikacja Hello World

W tym przykładzie utworzysz prostą aplikację konsolową Hello World, która rysuje elipsę i zapisuje ją jako obraz. Aplikację można zbudować i uruchomić w Dockerze.

Tworzenie aplikacji konsolowej

Aby utworzyć program Hello World, wykonaj poniższe kroki:

  1. Po zainstalowaniu Dockera upewnij się, że używa kontenerów Linux (domyślnie). W razie potrzeby wybierz opcję Przełącz na kontenery Linux z menu Docker Desktops.
  2. W Visual Studio utwórz aplikację konsolową .NET 6.
    Okno dialogowe projektu aplikacji konsolowej .NET 6
  3. Zainstaluj najnowszą wersję Aspose.CAD z NuGet.
    Aspose.CAD na NuGet
  4. Ponieważ aplikacja będzie uruchamiana na systemie Linux, może być konieczne zainstalowanie dodatkowych czcionek. Możesz zainstalować ttf-mscorefonts-installer.
  5. Po dodaniu wszystkich wymaganych zależności napisz prosty program, który tworzy elipsę i zapisuje ją jako obraz:
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());
}

Zauważ, że folder “TestOut” jest określony jako folder wyjściowy do zapisywania dokumentów wyjściowych. Podczas uruchamiania aplikacji w Dockerze, folder na hoście zostanie podmontowany do tego folderu w kontenerze. Umożliwi to łatwe przeglądanie wyjścia generowanego przez Aspose.CAD w kontenerze Docker.

Konfigurowanie Dockerfile

Następnym krokiem jest utworzenie i skonfigurowanie Dockerfile.

  1. Utwórz Dockerfile i umieść go obok pliku rozwiązania twojej aplikacji. Zachowaj tę nazwę pliku bez rozszerzenia (domyślnie).
  2. W Dockerfile określ:
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"]

Powyższy kod to prosty Dockerfile, który zawiera następujące instrukcje:

  • Obraz SDK, który ma być użyty. Tutaj jest to obraz .NET 6. Docker pobierze go podczas uruchamiania budowy. Wersja SDK jest określona jako tag.
  • Następnie może być konieczne zainstalowanie czcionek, ponieważ obraz SDK zawiera bardzo mało czcionek. Możesz również użyć lokalnych czcionek skopiowanych do obrazu dockerowego.
  • Katalog roboczy, który jest określony w następnej linii.
  • Komenda do skopiowania wszystkiego do kontenera, publikacji aplikacji i określenia punktu wejścia.

Budowanie i uruchamianie aplikacji w Dockerze

Teraz aplikacja może być zbudowana i uruchomiona w Dockerze. Otwórz preferowany wiersz poleceń, zmień katalog na folder z aplikacją (folder, w którym znajdują się plik rozwiązania i Dockerfile) i uruchom następującą komendę:

docker build -t dockerfile .

Przy pierwszym uruchomieniu tej komendy może to potrwać dłużej, ponieważ Docker musi pobrać wymagane obrazy. Gdy poprzednia komenda zostanie zakończona, uruchom następującą komendę:

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

Więcej przykładów

Aby zobaczyć więcej przykładów użycia Aspose.CAD w Dockerze, zapoznaj się z przykładami.

Zobacz także