Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
微服务与容器化相结合使得轻松组合技术成为可能。 Docker 允许您轻松地将 Aspose.Words 功能集成到您的应用程序中,无论您的开发堆栈中采用什么技术。
如果您的目标是微服务,或者您的堆栈中的主要技术不是 .NET、C++ 或 Java,但您需要 Aspose.Words 功能,或者您已经在堆栈中使用 Docker,那么您可能有兴趣在 Docker 中使用 Aspose.Words容器。
Docker 必须安装在您的系统上。有关如何在 Windows 或 Mac 上安装 Docker 的信息,请参阅"另请参阅"部分中的链接。
另请注意,示例中使用了 Visual Studio 2017、.NET Core 2.2 SDK,如下所示。
在此示例中,您将创建一个简单的 Hello World 控制台应用程序,用于生成"Hello World!“文档并将其保存为所有支持的保存格式。然后可以在 Docker 中构建并运行该应用程序。
要创建 Hello World 程序,请按照以下步骤操作:
SkiaSharp.NativeAssets.Linux。请注意,“TestOut"文件夹被指定为用于保存输出文档的输出文件夹。当在 Docker 中运行应用程序时,主机上的一个文件夹将被挂载到容器中的该文件夹中。这将使您能够轻松查看 Docker 容器中 Aspose.Words 生成的输出。
下一步是创建和配置 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", "Aspose.Words.Docker.Sample/out/Aspose.Words.Docker.Sample.dll"]上面是一个简单的Dockerfile,其中包含以下指令:
现在可以在 Docker 中构建并运行该应用程序。打开您最喜欢的命令提示符,将目录更改为应用程序所在的文件夹(放置解决方案文件和 Dockerfile 的文件夹)并运行以下命令:
docker build -t awtest .第一次执行此命令可能需要更长的时间,因为 Docker 需要下载所需的图像。上一个命令完成后,运行以下命令:
docker run --mount type=bind,source=C:\Temp,target=/TestOut --rm awtest from DockerAspose.Words 可用于 .NET Framework 和 .NET Core。 .NET Core 图像的大小比 .NET Framework 图像小得多,这使得 .NET Core 成为创建微服务和在容器中使用的更好选择。可以将应用程序部署到 Linux Docker 容器(用于跨平台部署),该容器比 Windows 容器更轻。
.NET Core SDK 的官方图像提供给:
为了处理图形,Aspose.Words for .NET Standard 依赖于 SkiaSharp。这限制了 Aspose.Words 可以运行的图像如下:
由于缺少一些本机依赖项、 这是 SkiaSharp 中的一个已知问题,SkiaSharp 不适用于 Windows Nano Server。该问题将在 SkiaSharp 1.68.1.1 版本中得到解决。如果您需要在 Windows 容器中运行 Aspose.Words,请使用 .NET Framework 基础映像和 Aspose.Words 的 .NET Framework 版本,它不依赖于 SkiaSharp。
SkiaSharp 是原生 Skia 库的包装器。 SkiaSharp NuGet 包中提供了以下运行时:
要在 Linux 中运行它,您应该使用其他 NuGet 包以及相应的本机资源,例如 Skia 库的本机构建,如下所示:
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"]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"]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"]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"]Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.