Jak spustit Aspose.Words tro Docker

Mikroslužby ve spojení s kontejnerizací umožňují snadno kombinovat technologie. Docker umožňuje snadno integrovat Aspose.Words funkčnost do vaší aplikace, bez ohledu na to, jaká technologie je ve vašem vývojovém stacku.

V případě, že se zaměřujete na mikroslužby, nebo pokud hlavní technologie ve vašem zásobníku není .NET, C++ nebo Java, ale potřebuješ Aspose.Words funkce, nebo pokud již používáte Docker ve vašem stacku, pak můžete mít zájem o využití Aspose.Words v Docker kontejner.

Předpoklady

  • Docker musí být nainstalován ve vašem systému. Informace o tom, jak nainstalovat Docker n Windows nebo Mac, viz odkazy v sekci “Viz také.”

  • Také si všimněte, že Visual Studio 2017, .NET Core 2, 2 SDK se používá v příkladu uvedeném níže.

Hello World Application

V tomto příkladu vytvoříte jednoduchou aplikaci Hello World konzole, která vytvoří dokument Hello World! Aplikace pak může být postavena a spuštěna v Docker.

Vytvoření aplikace konzole

Chcete-li vytvořit program Hello World, postupujte podle níže uvedených kroků:

  1. Jednou Docker je nainstalována, ujistěte se, že používá Linux Kontejnery (výchozí). V případě potřeby zvolte Přepínač na Linux možnost kontejneru z Docker Menu Desktops.
  2. In Visual Studio, vytvořit .NET Core aplikace konzole.
    net-console-application
  3. Nainstalovat nejnovější Aspose.Words verze NuGet. Skia Sharp bude nainstalován jako závislost Aspose.Words.
    skiasharp-dependency
  4. Vzhledem k tomu, že aplikace bude spuštěna <span notrans="<span notrans=" Linux"="">,? příslušný rodák Linux aktiva musí být instalována. Začněte s Debian základní obraz a instalace SkiaSharp.NativeAssets.Linux.
  5. Po přidání všech požadovaných závislostí napište jednoduchý program, který vytvoří dokument Hello World!

Všimněte si, že složka Při spuštění aplikace v <span notrans="<span notrans=" Docker"="">,? složka na hostitelském stroji bude namontována do této složky v kontejneru. To vám umožní snadno zobrazit výstup generovaný Aspose.Words v Docker kontejner.

Nastavení a Dockerfile

Dalším krokem je vytvořit a nastavit Dockerfile.

  1. Vytvořit Dockerfile a umístěte jej vedle souboru řešení vaší aplikace. Ponechat tento název souboru bez přípony (default).
  2. V Dockerfile, upřesněte:
FROM mcr.microsoft.com/dotnet/core/sdk:2.2
WORKDIR /app
RUN apt-get update && apt-get install -y libfontconfig1
COPY . ./
RUN dotnet publish -c Release -o out
ENTRYPOINT ["dotnet", "Aspose.Words.Docker.Sample/out/Aspose.Words.Docker.Sample.dll"]

Výše uvedené je jednoduché Dockerfile, obsahující tyto pokyny:

  • The SDK obrázek, který má být použit. Tady to je. .NET Core SDK 2.2 obrázek. Docker stáhne ji, až bude stavba spuštěna. Verze SDK je uvedena jako značka.
  • Pracovní adresář, který je uveden v dalším řádku.
  • Příkaz k instalaci libfontconfig1 je spuštěn v kontejneru. To vyžaduje SkiaSharp.
  • Příkaz zkopírovat vše do kontejneru, zveřejnit aplikaci a zadat vstupní bod.

Budování a provozování aplikace v Docker

Nyní lze aplikaci postavit a spustit v Docker. Otevřete svůj oblíbený příkaz, změňte adresář do složky s aplikací (složka, kde je soubor řešení a Dockerfile jsou umístěny) a spustit následující příkaz:

docker build -t awtest .

Poprvé je tento příkaz proveden může trvat déle, protože Docker potřebuje stáhnout požadované obrázky. Po dokončení předchozího příkazu spusťte následující příkaz:

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

Obrázek podporující Aspose.Words

Aspose.Words je k dispozici pro oba .NET Framework a .NET Core. • .NET Core obrázky jsou mnohem menší než .NET Framework obrázky, které činí .NET Core lepší volbou pro vytváření mikroslužeb a pro použití v kontejnerech. Je možné nasadit aplikace na Linux Docker kontejnery (pro příčné nasazení), které jsou lehčí než Windows kontejnery.

Oficiální obrázky pro .NET Core SDK jsou stanoveny pro:

  • Debian 9 a 10
  • Ubuntu 18,04 a 19,04
  • Alpine 3, 7 a 3, 9
  • Windows Nano Server

Pracovat s grafikou, Aspose.Words místo .NET Standard Záleží na SkiaSharp. To omezuje obrázky Aspose.Words mohou být provozovány na:

  • Debian 9 a 10
  • Ubuntu 18,04 a 19,04
  • Alpine 3.9

SkiaSharp nefunguje na Windows Nano Server kvůli nedostatku domorodých závislostí, což je známé číslo ve SkiaSharp. Otázka bude vyřešena v verzi 1.68.1.1 SkiaSharp. Pokud potřebujete utéct Aspose.Words v Windows kontejner, použijte .NET Framework základní obrázek s .NET Framework verze Aspose.Words, která nezávisí na SkiaSharp.

SkiaSharp je obal kolem původní Skia knihovny. Následující runtimes jsou poskytovány v SkiaSharp NuGet balení:

  • Osx
  • tizen-armel
  • tizen-x86
  • win10-arm
  • win10-x64
  • Win10-x86
  • win-x64
  • win-x86

Proběhnout v Linux, Měli byste použít další NuGet balíčky s odpovídajícím původním majetkem, jako jsou nativní stavby Skia knihovny, uvedené níže:

  • SkiaSharp.NativeAssets.Linux Pro x64 poskytuje původní postavu Skia Debian založené Linux distribuce.
  • SkiaSharp.NativeAssets.Linux.NoDependencies Balíček je určen k použití v Linux distribuce, které nemají závislost na libfontconfig. Testováno RHEL 7 (x64).
  • Goelze.SkiaSharp.NativeAssets.AlpineLinux Pro x64 poskytuje původní postavu Skia Alpine Linux 3.9.
  • Jellyfin.SkiaSharp.NativeAssets.LinuxArm Nachází se zde lyžařská stavba pro rameno 32 a arm64 Debian založené Linux distribuce.

Další příklady

  1. Ve výše uvedeném příkladu byla aplikace spuštěna v SDK obrázek. SDK obrázky jsou těžší než runtime snímky. Níže uvedený příklad ukazuje, jak Docker Soubor by měl být upraven tak, aby byl použit SDK obrázek pro vytvoření aplikace a runtime obrázek pro spuštění:
    FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
    WORKDIR /app
    \# copy csproj and restore as distinct layers
    COPY Aspose.Words.Docker.Sample/*.csproj ./Aspose.Words.Docker.Sample/
    WORKDIR /app/Aspose.Words.Docker.Sample
    RUN dotnet restore
    \# copy and publish app and libraries
    WORKDIR /app/
    COPY Aspose.Words.Docker.Sample/. ./Aspose.Words.Docker.Sample/
    WORKDIR /app/Aspose.Words.Docker.Sample
    RUN dotnet publish -c Release -o out
    \# copy to runtime environment
    FROM mcr.microsoft.com/dotnet/core/runtime:2.2 AS runtime
    WORKDIR /app
    \# libfontconfig1 is required to properly work with fonts in Linux.
    RUN apt-get update && apt-get install -y libfontconfig1
    RUN apt install libharfbuzz-icu0
    COPY --from=build /app/Aspose.Words.Docker.Sample/out ./
    ENTRYPOINT ["dotnet", "Aspose.Words.Docker.Sample.dll"]
  2. Spustit aplikaci v Ubuntu 18.04 Dockerfile zůstává prakticky stejný (změní se pouze značka):
    FROM mcr.microsoft.com/dotnet/core/sdk:2.2-bionic AS build
    WORKDIR /app
    \# copy csproj and restore as distinct layers
    COPY Aspose.Words.Docker.Sample/*.csproj ./Aspose.Words.Docker.Sample/
    WORKDIR /app/Aspose.Words.Docker.Sample
    RUN dotnet restore
    \# copy and publish app and libraries
    WORKDIR /app/
    COPY Aspose.Words.Docker.Sample/. ./Aspose.Words.Docker.Sample/
    WORKDIR /app/Aspose.Words.Docker.Sample
    RUN dotnet publish -c Release -o out
    \# copy to runtime environment
    FROM mcr.microsoft.com/dotnet/core/runtime:2.2-bionic AS runtime
    WORKDIR /app
    \# libfontconfig1 is required to properly work with fonts in Linux.
    RUN apt-get update && apt-get install -y libfontconfig1
    RUN apt install libharfbuzz-icu0
    COPY --from=build /app/Aspose.Words.Docker.Sample/out ./
    ENTRYPOINT ["dotnet", "Aspose.Words.Docker.Sample.dll"]
  3. Spustit aplikaci v Alpine Linux, je nutné přidat původní majetek SkiaSharp a použít následující Dockerfile:
    FROM mcr.microsoft.com/dotnet/core/sdk:2.2-alpine3.9 AS build
    WORKDIR /app
    \# copy csproj and restore as distinct layers
    COPY Aspose.Words.Docker.Sample/*.csproj ./Aspose.Words.Docker.Sample/
    WORKDIR /app/Aspose.Words.Docker.Sample
    RUN dotnet restore
    \# copy and publish app and libraries
    WORKDIR /app/
    COPY Aspose.Words.Docker.Sample/. ./Aspose.Words.Docker.Sample/
    WORKDIR /app/Aspose.Words.Docker.Sample
    RUN dotnet publish -c Release -o out
    \# copy to runtime environment
    FROM mcr.microsoft.com/dotnet/core/runtime:2.2-alpine3.9 AS runtime
    WORKDIR /app
    \# fontconfig is required to properly work with fonts in Linux.
    RUN apk update && apk upgrade && apk add fontconfig && apk add harfbuzz
    COPY --from=build /app/Aspose.Words.Docker.Sample/out ./
    ENTRYPOINT ["dotnet", "Aspose.Words.Docker.Sample.dll"]
  4. Spustit aplikaci v RHEL 7, je nutné přidat původní majetek SkiaSharp a použít následující Dockerfile:
    FROM mcr.microsoft.com/dotnet/core/sdk:2.1 AS build
    WORKDIR /app
    \# copy csproj and restore as distinct layers
    COPY Aspose.Words.Docker.Sample/*.csproj ./Aspose.Words.Docker.Sample/
    WORKDIR /app/Aspose.Words.Docker.Sample
    RUN dotnet restore
    \# copy and publish app and libraries
    WORKDIR /app/
    COPY Aspose.Words.Docker.Sample/. ./Aspose.Words.Docker.Sample/
    WORKDIR /app/Aspose.Words.Docker.Sample
    RUN dotnet publish -c Release -o out
    \# copy to runtime environment
    FROM kkamberta/dotnet-21-rhel7 AS runtime
    WORKDIR /app
    COPY --from=build /app/Aspose.Words.Docker.Sample/out ./
    ENTRYPOINT ["/opt/rh/rh-dotnet21/root/usr/bin/dotnet", "Aspose.Words.Docker.Sample.dll"]

Viz také