將 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容器嗎? 進一步了解IronPDF 引擎教程指南.

Docker V1 related to 將 IronPDF 加入現有的 Docker 容器
Azure 1 related to 將 IronPDF 加入現有的 Docker 容器
Linux V1 related to 將 IronPDF 加入現有的 Docker 容器
Amazon Web Services V1 related to 將 IronPDF 加入現有的 Docker 容器
Windows Logo V1 related to 將 IronPDF 加入現有的 Docker 容器

為什麼在 Azure 上使用 Docker?

除了卓越的企業擴展性外,部署在 Azure 上的 Docker 容器比常規 WebApps 擁有更多的權限。

這允許渲染SVG字體,因為系統可以使用GDI+圖形。

IronPDF 與 Linux 入門

如果您對 Docker 與 .NET 不熟悉,我們推薦這篇出色的文章設置 Docker 調試和與 Visual Studio 專案的整合.

我們也強烈推薦您閱讀我們的IronPDF Linux 安裝和相容性指南

推薦的 Linux Docker 發行版

我們推薦以下最新的 64 位元 Linux 操作系統,以便於配置 IronPDF。

Ubuntu 22

Ubuntu 20

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。 首次使用 IronPDF 的 Docker 實例可能需要一些時間來下載先決條件。 我們可以在創建實例時調用此代碼以避免這種情況:

IronPdf.Installation.Initialize();

Ubuntu Linux DockerFiles

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

Ubuntu 20 搭配 .NET 3.1 LTS

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

Debian 11 與 .NET 6

Debian 11 與 .NET 5

Debian 11 與 .NET 3.1 LTS

Debian 10 與 .NET 5

Debian 10 搭配 .NET 3.1 LTS

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 上,由於能夠更高程度地訪問圖形庫和虛擬顯示卡。

The article 'Visual Studio 容器工具 for Docker' 是一本非常棒的入門指南。

這是一個用於 .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"]

訪問IronSoftware 在 Docker Hub 上的 Docker 儲存庫探索更多預先配置的IronPDF運行映像。