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ů:
- 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.
- In Visual Studio, vytvořit .NET Core aplikace konzole.
- Nainstalovat nejnovější Aspose.Words verze NuGet. Skia Sharp bude nainstalován jako závislost Aspose.Words.
- Vzhledem k tomu, že aplikace bude spuštěna 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
. - 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 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.
- Vytvořit Dockerfile a umístěte jej vedle souboru řešení vaší aplikace. Ponechat tento název souboru bez přípony (default).
- 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
- 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"]
- 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"]
- 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"]
- 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é
- Instalovat Docker Na ploše Windows
- Instalovat Docker Tabulka na Macu
- Visual Studio 2017, .NET Core 2.2 SDK
- Přepnout na Linux kontejnery možnost
- Instalovat SkiaSharp.NativeAssets.Linux
- Dodatečné informace .NET Core SDK
- Použít další NuGet balení: SkiaSharp.NativeAssets.Linux, SkiaSharp.NativeAssets.Linux.Žádné závislosti, Goelze.SkiaSharp.NativeAssets.AlpineLinux, Jellyfin.SkiaSharp.NativeAssets.LinuxRuka
- RHEL 7 (x64)