将 IronPDF 添加到现有的 Docker 容器中

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 入门

如果您对使用 .NET 的 Docker 不熟悉,我们向您推荐以下这篇出色的文章 设置 Docker 调试并与 Visual Studio 项目集成.

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

推荐的 Linux Docker 发行版

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

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

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

IronPDF Linux Docker 安装要点

使用经过 Linux 优化的 NuGet 软件包

我们建议使用 IronPdf.Linux NuGet 软件包,而不是常规的 IronPdf 包,以节省磁盘空间,避免在启动 Docker 实例时下载资产。别担心,在 Windows 或 macOS 上开发时,它仍然有效,只是在 Linux 上进行了优化。

Install-Package IronPdf.Linux

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

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 DockerFiles

不支持在 Alpine Linux 上运行 IronPDF。我们也希望能支持,但我们做不到。坦率地说,我们喜欢 Alpine,并希望这个项目能继续发展下去。截至 2023 年,Alpine 仍在使用过时的 "musl "C 语言库,这使得 chromium 开发人员还无法完全支持该操作系统。

在.NET 6中使用Alpine Docker和IronPdfEngine

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

第 1 步:提取并运行 IronPdf 引擎 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 的预配置镜像。