向现有的 Docker 容器中添加 IronPDF
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 所需的所有必要依赖项。
请注意
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 的预配置镜像。