• <menu id="w2i4a"></menu>
  • logo Aspose中文文檔

    文檔首頁>>Aspose中文文檔>>如何在 Docker 中運(yùn)行 Aspose.Words

    如何在 Docker 中運(yùn)行 Aspose.Words


    Aspose.Words是一種高級(jí)Word文檔處理API,用于執(zhí)行各種文檔管理和操作任務(wù)。API支持生成,修改,轉(zhuǎn)換,呈現(xiàn)和打印文檔,而無需在跨平臺(tái)應(yīng)用程序中直接使用Microsoft Word。

    Aspose API支持流行文件格式處理,并允許將各類文檔導(dǎo)出或轉(zhuǎn)換為固定布局文件格式和最常用的圖像/多媒體格式。

    如果您的目標(biāo)是微服務(wù),或者您的堆棧中的主要技術(shù)不是 .NET、C++ 或 Java,但您需要 Aspose.Words 功能,或者您已經(jīng)在堆棧中使用 Docker,那么您可能有興趣使用 Aspose .Docker 容器中的單詞。

    微服務(wù)與容器化相結(jié)合使得輕松組合技術(shù)成為可能。Docker 允許您輕松地將 Aspose.Words 功能集成到您的應(yīng)用程序中,無論您的開發(fā)堆棧中采用什么技術(shù)。

    Aspose.words 最新下載

    Aspose技術(shù)交流群(761297826

    先決條件
    • Docker 必須安裝在您的系統(tǒng)上。有關(guān)如何在 Windows 或 Mac 上安裝 Docker 的信息,請(qǐng)參閱“另請(qǐng)參閱”部分中的鏈接。

    • 下面提供的示例中使用了 Visual Studio 2017、.NET Core 2.2 SDK。

    你好世界應(yīng)用程序

    在此示例中,您將創(chuàng)建一個(gè)簡(jiǎn)單的 Hello World 控制臺(tái)應(yīng)用程序,用于生成“Hello World!” 文檔并將其保存為所有支持的保存格式。然后可以在 Docker 中構(gòu)建并運(yùn)行該應(yīng)用程序。

    創(chuàng)建控制臺(tái)應(yīng)用程序

    要?jiǎng)?chuàng)建 Hello World 程序,請(qǐng)按照以下步驟操作:

    1. 安裝 Docker 后,請(qǐng)確保它使用 Linux 容器(默認(rèn))。如有必要,請(qǐng)從 Docker 桌面菜單中選擇切換到 Linux 容器選項(xiàng)。

    2. 在 Visual Studio 中,創(chuàng)建一個(gè) .NET Core 控制臺(tái)應(yīng)用程序。
      aspose下載

    3. 從 NuGet 安裝最新的 Aspose.Words 版本。SkiaSharp 將作為 Aspose.Words 的依賴項(xiàng)安裝。
      aspose下載

    4. 由于應(yīng)用程序?qū)⒃?Linux 上運(yùn)行,因此必須安裝適當(dāng)?shù)谋緳C(jī) Linux 資產(chǎn)。從 Debian 基礎(chǔ)映像開始并安裝 SkiaSharp.NativeAssets.Linux。

    5. 添加所有必需的依賴項(xiàng)后,編寫一個(gè)簡(jiǎn)單的程序來創(chuàng)建“Hello World!” 文檔并將其保存為所有支持的保存格式:

    using Aspose.Words;
    using System;
    namespace Aspose.Words.Docker.Sample
    {
    class Program
    {
    static void Main(string[] args)
    {
    // Create document and save it in all available formats.
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    builder.Writeln("Hello from Aspose.Words!!!");
    foreach (SaveFormat sf in Enum.GetValues(typeof(SaveFormat)))
    {
    if (sf != SaveFormat.Unknown)
    {
    try
    {
    // The folder specified will be mounted as a volume when run the application in Docker image.
    doc.Save(string.Format("/TestOut/out{0}", FileFormatUtil.SaveFormatToExtension(sf)), sf);
    Console.WriteLine("Saving {0}\t\t[OK]", sf);
    }
    catch
    {
    Console.WriteLine("Saving {0}\t\t[FAILED]", sf);
    }
    }
    }
    }
    }
    }

    點(diǎn)擊復(fù)制

    “TestOut”文件夾被指定為用于保存輸出文檔的輸出文件夾。當(dāng)在Docker中運(yùn)行應(yīng)用程序時(shí),主機(jī)上的一個(gè)文件夾將被掛載到容器中的這個(gè)文件夾中。這將使您能夠輕松查看 Docker 容器中 Aspose.Words 生成的輸出。

    配置 Dockerfile

    下一步是創(chuàng)建和配置 Dockerfile。

    1. 創(chuàng)建 Dockerfile 并將其放置在應(yīng)用程序的解決方案文件旁邊。保留此文件名,不帶擴(kuò)展名(默認(rèn))。

    2. 在 Dockerfile 中,指定:

    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", "Aspse.Words.Docker.Sample/out/Aspse.Words.Docker.Sample.dll"]

    點(diǎn)擊復(fù)制

    上面是一個(gè)簡(jiǎn)單的Dockerfile,其中包含以下指令:

    • 要使用的 SDK 鏡像。這是 .NET Core SDK 2.2 映像。Docker 將在構(gòu)建運(yùn)行時(shí)下載它。SDK的版本被指定為標(biāo)簽。

    • 工作目錄,在下一行中指定。

    • 安裝 libfontconfig1 的命令在容器中運(yùn)行。這是 SkiaSharp 所要求的。

    • 該命令將所有內(nèi)容復(fù)制到容器、發(fā)布應(yīng)用程序并指定入口點(diǎn)。

    在 Docker 中構(gòu)建并運(yùn)行應(yīng)用程序

    現(xiàn)在可以在 Docker 中構(gòu)建并運(yùn)行該應(yīng)用程序。打開您最喜歡的命令提示符,將目錄更改為應(yīng)用程序所在的文件夾(放置解決方案文件和 Dockerfile 的文件夾)并運(yùn)行以下命令:

    docker build -t awtest .

    點(diǎn)擊復(fù)制

    第一次執(zhí)行該命令可能需要更長的時(shí)間,因?yàn)?Docker 需要下載所需的鏡像。上一個(gè)命令完成后,運(yùn)行以下命令:

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

    點(diǎn)擊復(fù)制

    請(qǐng)注意掛載參數(shù),因?yàn)槿缜八?,主機(jī)上的文件夾被掛載到容器的文件夾中,以便輕松查看應(yīng)用程序執(zhí)行的結(jié)果。Linux 中的路徑區(qū)分大小寫。

    支持 Aspose.Words 的圖像

    Aspose.Words 可用于 .NET Framework 和 .NET Core。.NET Core 映像的大小比 .NET Framework 映像小得多,這使得 .NET Core 成為創(chuàng)建微服務(wù)和在容器中使用的更好選擇??梢詫?yīng)用程序部署到 Linux Docker 容器(用于跨平臺(tái)部署),它比 Windows 容器更輕。

    .NET Core SDK 的官方映像提供用于:

    • Debian 9 and 10

    • Ubuntu 18.04 and 19.04

    • Alpine 3.7 and 3.9

    • Windows Nano Server

    為了處理圖形,Aspose.Words for .NET Standard 依賴于 SkiaSharp。這限制了 Aspose.Words 可以運(yùn)行的圖像如下:

    • Debian 9 and 10

    • Ubuntu 18.04 and 19.04

    • Alpine 3.9

    由于缺少一些本機(jī)依賴項(xiàng),SkiaSharp 無法在 Windows Nano Server 上運(yùn)行, 這是 SkiaSharp 中的一個(gè)已知問題。該問題將在 SkiaSharp 1.68.1.1 版本中得到解決。如果您需要在 Windows 容器中運(yùn)行 Aspose.Words,請(qǐng)將 .NET Framework 基礎(chǔ)映像與 .NET Framework 版本的 Aspose.Words 一起使用,該版本不依賴于 SkiaSharp。

    SkiaSharp 是原生 Skia 庫的包裝器。SkiaSharp NuGet 包中提供了以下運(yùn)行時(shí):

    • osx

    • tizen-armel

    • tizen-x86

    • win10-arm

    • win10-x64

    • win10-x86

    • win-x64

    • win-x86

    要在 Linux 中運(yùn)行它,您應(yīng)該使用其他 NuGet 包以及相應(yīng)的本機(jī)資源,例如 Skia 庫的本機(jī)構(gòu)建,如下所示:

    • SkiaSharp.NativeAssets.Linux – 為基于 x64 Debian 的 Linux 發(fā)行版提供本機(jī) Skia 構(gòu)建。

    • SkiaSharp.NativeAssets.Linux.NoDependency – 該軟件包旨在用于不具有 libfontconfig 依賴項(xiàng)的 Linux 發(fā)行版。在 RHEL 7 (x64) 上測(cè)試。

    • Goelze.SkiaSharp.NativeAssets.AlpineLinux – 為 x64 Alpine Linux 3.9 提供原生 Skia 構(gòu)建。

    • Jellyfin.SkiaSharp.NativeAssets.LinuxArm – 為基于arm32和arm64 Debian的Linux發(fā)行版提供本機(jī)Skia構(gòu)建。

    更多示例
    1. 在上面的示例中,應(yīng)用程序在 SDK 映像中運(yùn)行。SDK 映像比運(yùn)行時(shí)映像重。下面的示例演示了如何修改 Docker 文件,以便使用 SDK 映像來構(gòu)建應(yīng)用程序,以及運(yùn)行時(shí)映像來運(yù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"]

      點(diǎn)擊復(fù)制

    2. 要在 Ubuntu 18.04 中運(yùn)行該應(yīng)用程序,Dockerfile 幾乎保持不變(僅更改了標(biāo)簽):

      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"]

      點(diǎn)擊復(fù)制

    3. 要在 Alpine Linux 中運(yùn)行該應(yīng)用程序,需要添加 SkiaSharp 本機(jī)資產(chǎn)并使用以下 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"]

      點(diǎn)擊復(fù)制

    4. 要在 RHEL 7 中運(yùn)行該應(yīng)用程序,需要添加 SkiaSharp 本機(jī)資產(chǎn)并使用以下 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"]

      點(diǎn)擊復(fù)制

    也可以查看

    如需下載產(chǎn)品Aspose.Words ,請(qǐng)點(diǎn)擊產(chǎn)品名進(jìn)入下載頁面

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();