將 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 容器相較於普通 Web 應用程式享有更多的權限。

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

IronPDF 與 Linux 入門指南

如果您對 Docker 與 .NET 不熟悉,我們建議您閱讀這篇很棒的文章 設置 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

避免自動安裝依賴項

許多用戶報告,在 Linux 和 Docker 上將 LinuxAndDockerDependenciesAutoConfig 設置為 false 時,結果更好。這是因為預先條件已經通過 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 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

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 DockerFiles

在 Alpine Linux 上運行 IronPDF 是不被支持的。我們希望可以,但我們無法做到。坦白說,我們喜歡 Alpine 並希望這個項目能繼續發展。截至 2023 年,Alpine 仍然使用過時的 "musl" C 語言庫,這使得 Chromium 開發者尚未能完全支持此操作系統。

在 .NET 6 中使用 Alpine Docker 和 IronPdfEngine

IronPdf 提供了一個包含所有 IronPdf 功能的容器映像。這允許在 Alpine 上運行的項目通過連接到 IronPdfEngine 容器來訪問 IronPdf 的功能。

步驟 1:拉取並運行 IronPdf 引擎 Docker 映像

在終端中執行以下命令以拉取並運行 IronPdf 引擎 Docker 映像:

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

第2步:設置控制台應用程式

建立一個針對 .NET 6 的新控制台應用程式。

使用 NuGet 套件管理器安裝 IronPdf.Slim 套件。

IronPDF Windows Docker 容器

Windows Docker 容器在 Azure 上越來越受歡迎,因為它們提供更高的性能和可擴展性,並給開發人員更多配置實例的權限。

IronPDF 將在 Docker 容器中實現更具吸引力的文本渲染。 (Windows 或 Linux) 在 Azure 上因為對圖形庫和虛擬圖形卡的較高存取權限。

這篇文章『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"]

訪問 Docker 資料庫 探索更多預先配置的IronPDF運行映像。