向现有的 Docker 容器中添加 IronPDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF for .NET Standard 现在完全支持 Docker,包括适用于 Linux 和 Windows 的 Azure Docker 容器。

您想将IronPDF部署为单独的Docker容器吗? 了解更多关于IronPdfEngine.

为什么在Azure上使用Docker?

除了出色的企业可扩展性外,Azure 上的 Docker 容器比常规 WebApps 拥有更多权限。
这样就可以渲染 SVG 字体,因为系统访问 GDI+ 图形的功能已启用。

IronPDF 和 Linux 入门

如果 Docker 与 .NET 对您来说是新的,我们推荐这篇优秀的文章关于设置 Docker 调试并与 Visual Studio 项目集成.

我们还强烈建议您阅读我们的IronPDF Linux 安装和兼容性指南

推荐的Linux Docker发行版

我们推荐以下最新的64位Linux操作系统,以便于配置IronPDF。

Ubuntu 22

  • 乌班图 20 Ubuntu 18 Debian 11 Debian 10[目前 Microsoft Azure 默认 Linux 发行版]_
  • CentOS 8 Amazon AWS Linux 2阅读《IronPDF AWS Lambda 设置指南

    我们建议使用Microsoft的官方 Docker 映像 . 其他 Linux 发行版部分支持,但可能需要使用 apt-get 手动配置。 请参阅我们的“Linux 手动设置“指南”

    本文件包括适用于Ubuntu和Debian的工作Docker文件:

IronPDF Linux Docker 安装要点

使用针对Linux优化的NuGet包

我们建议使用IronPdf.LinuxNuGet 软件包,而不是常规的IronPdf将包裹保存磁盘空间并避免在启动您的Docker实例时下载资产。 不用担心,即使在Windows或macOS上开发,它依然有效——它只是针对Linux进行了优化。

Install-Package IronPdf.Linux

另一种解决方案是简单地添加IronPdf.Native.Chrome.Linux在常规IronPdfNuGet 软件包。

Install-Package IronPdf.Native.Chrome.Linux

避免自动安装依赖

许多用户报告说,当LinuxAndDockerDependenciesAutoConfig设置为false时,Linux和Docker的结果更佳。 这是因为所需的先决条件已经通过apt-get样式的包管理器安装在您的Docker文件中了。

IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;

禁用 GPU 加速

Linux Docker容器通常无法访问GPU。 默认情况下,GPU加速被禁用。 如果您已启用ChromeGpuModes.Enabled,我们强烈建议您在Docker部署中禁用它:

IronPdf.Installation.ChromeGpuMode=IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;

“提前”初始化

您也可以选择调用 IronPdf.Installation.Initialize()手动启动 IronPDF 的方法。 首次使用 Docker 实例运行 IronPDF 时,下载先决条件可能需要一些时间。 我们可以通过在实例创建时调用这段代码来避免这种情况:

IronPdf.Installation.Initialize();

Ubuntu Linux DockerFiles

Ubuntu 22 与 .NET 8

请将用户从'app'更改为'root'。 这将确保库获得足够的权限。 通过这一改变,将不需要为IronCefSubprocess设置'rwx'。

Ubuntu 22 与 .NET 7

Ubuntu 20 与 .NET 6

Ubuntu 20 与 .NET 5

配备 .NET 3.1 LTS 的 Ubuntu 20

Ubuntu 18 与 .NET 3.1 LTS

Debian Linux DockerFiles

Debian 12 与 .NET 8

Debian 11 与 .NET 7

配备 .NET 6 的 Debian 11

配备 .NET 5 的 Debian 11

配备 .NET 3.1 LTS 的 Debian 11

Debian 10 与 .NET 5

配备 .NET 3.1 LTS 的 Debian 10

Alpine Linux Docker文件

IronPDF在Alpine Linux上运行不受支持。 我们希望我们能,但我们不能。 坦白说,我们喜欢Alpine,并希望这个项目能继续发展和壮大。 截至2023年,Alpine仍在使用过时的“musl” C语言库,这使得Chromium开发者尚未能完全支持这个操作系统。

在 .NET 6 中使用 Alpine Docker 和 IronPdfEngine

IronPdf提供一个包含所有IronPdf功能的容器映像。 这使得在Alpine上运行的项目通过连接到IronPdfEngine容器来访问IronPdf的功能。

步骤1:拉取并运行 IronPdf Engine Docker 镜像

在终端执行以下命令以拉取并运行 IronPdf Engine Docker 镜像:

docker pull ironsoftwareofficial/ironpdfengine
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine

步骤2:设置控制台应用程序

创建一个针对 .NET 6 的新控制台应用程序。 使用 NuGet 包管理器安装 IronPdf.Slim NuGet 包。

IronPDF Windows Docker 容器

Windows Docker 容器在 Azure 上越来越受欢迎,因为它们提供更高的性能和可扩展性,并且赋予开发者更多配置实例的权限。

IronPDF将在Docker容器内实现更吸引人的文本渲染。(Windows 或 Linux)在Azure上,因为可以更高级别地访问图形库和虚拟图形卡。

文章 '适用于 Docker 的 Visual Studio 容器工具'是一个非常好的入门指南。

这是一个用于 .NET Core 3.1 的示例 Windows 容器 Dockerfile。

Windows Server 2019 .NET 6.0

预配置的 Windows 容器,包括运行 IronPdf 所需的所有必要依赖项。

请注意
请注意,这些容器不是用来构建 .NET 应用程序的,而是用来运行它们的。

FROM mcr.microsoft.com/dotnet/sdk:6.0-windowsservercore-ltsc2019 AS build
WORKDIR /src
COPY ["nuget.config", "."]
COPY ["ConsoleApp/ConsoleApp.csproj", "ConsoleApp/"]
RUN dotnet restore "ConsoleApp/ConsoleApp.csproj"
COPY . .
WORKDIR "/src/ConsoleApp"
RUN dotnet build "ConsoleApp.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "ConsoleApp.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM ironsoftwareofficial/windows:2019-net60
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ConsoleApp.dll"]

访问Docker 存储库探索更多用于运行 IronPdf 的预配置镜像。