向现有的 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.

Docker V1 related to 向现有的 Docker 容器中添加 IronPDF
Azure 1 related to 向现有的 Docker 容器中添加 IronPDF
Linux V1 related to 向现有的 Docker 容器中添加 IronPDF
Amazon Web Services V1 related to 向现有的 Docker 容器中添加 IronPDF
Windows Logo V1 related to 向现有的 Docker 容器中添加 IronPDF

为什么在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

Docker V1 related to Ubuntu Linux DockerFiles
Ubuntu V1 related to 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

Docker V1 related to Debian Linux DockerFiles
Debian V1 related to 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 容器

Docker V1 related to IronPDF Windows Docker 容器
Windows Logo V1 related to 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 的预配置镜像。