Cara Menjalankan Aspose.CAD di Docker

Prasyarat

  • Docker harus diinstal di sistem Anda. Untuk informasi tentang cara menginstal Docker di Windows atau Mac, silakan merujuk ke tautan di bagian “Lihat Juga”.
  • Visual Studio 2022.
  • SDK .NET 6 digunakan dalam contoh ini.

Aplikasi Hello World

Dalam contoh ini, Anda membuat aplikasi konsol Hello World sederhana yang menggambar suatu elips dan menyimpannya sebagai gambar. Aplikasi kemudian dapat dibangun dan dijalankan di Docker.

Membuat Aplikasi Konsol

Untuk membuat program Hello World, ikuti langkah-langkah di bawah ini:

  1. Setelah Docker terinstal, pastikan bahwa ini menggunakan Kontainer Linux (default). Jika perlu, pilih opsi Beralih ke kontainer Linux dari menu Docker Desktop.
  2. Di Visual Studio, buat aplikasi konsol .NET 6.
    Dialog proyek aplikasi konsol .NET 6
  3. Instal versi terbaru Aspose.CAD dari NuGet.
    Aspose.CAD di NuGet
  4. Karena aplikasi akan dijalankan di Linux, Anda mungkin perlu menginstal font tambahan. Anda dapat memilih ttf-mscorefonts-installer.
  5. Ketika semua dependensi yang diperlukan telah ditambahkan, tulis program sederhana yang membuat elips dan menyimpannya sebagai gambar:
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());
}

Perhatikan bahwa folder “TestOut” ditentukan sebagai folder keluaran untuk menyimpan dokumen keluaran. Saat menjalankan aplikasi di Docker, sebuah folder di mesin host akan dipasang ke folder ini di dalam kontainer. Ini akan memungkinkan Anda untuk dengan mudah melihat keluaran yang dihasilkan oleh Aspose.CAD di dalam kontainer Docker.

Mengonfigurasi Dockerfile

Langkah selanjutnya adalah membuat dan mengonfigurasi Dockerfile.

  1. Buat Dockerfile dan tempatkan di samping file solusi aplikasi Anda. Jaga nama file ini tanpa ekstensi (default).
  2. Di dalam Dockerfile, tentukan:
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"]

Di atas adalah Dockerfile sederhana, yang berisi instruksi berikut:

  • Gambar SDK yang akan digunakan. Di sini adalah gambar .NET 6. Docker akan mengunduhnya ketika build dijalankan. Versi SDK ditentukan sebagai tag.
  • Setelah itu, Anda mungkin perlu menginstal Font karena gambar SDK mengandung sangat sedikit font. Selain itu, Anda juga dapat menggunakan font lokal yang disalin ke gambar docker.
  • Direktori kerja, yang ditentukan pada baris berikutnya.
  • Perintah untuk menyalin semuanya ke kontainer, menerbitkan aplikasi, dan menentukan titik masuk.

Membangun dan Menjalankan Aplikasi di Docker

Sekarang aplikasi dapat dibangun dan dijalankan di Docker. Buka command prompt favorit Anda, ubah direktori ke folder dengan aplikasi (folder tempat file solusi dan Dockerfile ditempatkan) dan jalankan perintah berikut:

docker build -t dockerfile .

Waktu pertama perintah ini dijalankan mungkin memakan waktu lebih lama, karena Docker perlu mengunduh gambar yang diperlukan. Setelah perintah sebelumnya selesai, jalankan perintah berikut:

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

Contoh Lain

Untuk lebih banyak contoh tentang bagaimana Anda dapat menggunakan Aspose.CAD di Docker, lihat contoh.

Lihat Juga