將 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.

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

  • Ubuntu 18

    Debian 11

    Debian 10[目前的 Microsoft Azure 預設 Linux 作業系統分發版本]_

  • CentOS 8
  • 亞馬遜 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。 首次使用 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"]

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