以遠端容器形式運行IronPDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPdfEngine 是一個獨立的服務,能夠處理 PDF 的創建、寫入、編輯和讀取。 IronPDF Docker 已準備好運行與 IronPDF 兼容版本的 Docker 服務。(v2023.2.x 及以上). 這將幫助開發者解決他們在使用IronPDF時可能遇到的部署問題。

為何將 IronPDF 作為獨立容器運行是一個好主意

IronPDF 需要同時使用 Chrome 和 Pdfium 二進制文件來運行,這些文件的大小非常龐大。(數百MB). 它還需要在機器上安裝幾個依賴項。

使用此方法,您的客戶端將只佔用一小部分大小。(以 MB 为单位).

避免部署問題

配置環境/容器以正確包含所有依賴項可能會有困難。 使用 IronPDF Docker 容器意味著 IronPDF 已經預先安裝且保證正常工作,避免了所有部署和依賴性問題。

版本

IronPDF Docker 標籤基於 IronPdfEngine 版本本身。 這不是IronPDF產品的相同版本。

每個IronPDF版本都會有相對應的IronPdfEngine版本。 版本號碼必須與 IronPDF Docker 版本相匹配。

例如:IronPDF for Java 版本 2023.2.1 需要 IronPdfEngine 版本 2023.2.1。 您不能使用不匹配的 IronPdfEngine 和 IronPDF 版本。


如何使用 IronPDF Docker

安裝 IronPDF

將 IronPdf.Slim Nuget 套件添加到您的項目中。

https://www.nuget.org/packages/IronPdf.Slim/

注意:IronPdfIronPdf.LinuxIronPdf.MacOs 套件都包含 IronPdf.Slim。

要減少應用程序的大小,我們建議只安裝IronPdf.Slim。 IronPdf.Native.Chrome.xxx 套件已不再使用,所以您可以將其從您的專案中移除。

確定所需的容器版本

根據預設,Docker 版本的 IronPDF 將與 NuGet 上的 IronPDF 當前版本相匹配。 您可以使用以下程式碼手動檢查版本:

:path=/static-assets/pdf/content-code-examples/how-to/ironpdfengine-docker-version.cs
string ironPdfEngineVersion = IronPdf.Installation.IronPdfEngineVersion;
Dim ironPdfEngineVersion As String = IronPdf.Installation.IronPdfEngineVersion
VB   C#

設置 IronPDF for Docker Container

沒有 Docker Compose

使用上一步的版本運行 docker 容器。

  • Docker 必須安裝。

    設定

  1. 前往 https://hub.docker.com/r/ironsoftwareofficial/ironpdfengine

  2. 拉取最新的ironsoftwareofficial/ironpdfengine映像
docker pull ironsoftwareofficial/ironpdfengine

或拉取特定版本(推薦)

docker pull ironsoftwareofficial/ironpdfengine:2023.12.6
  1. 運行 ironsoftwareofficial/ironpdfengine 容器。

    此命令將創建一個容器並在後台運行,端口為33350。

docker run -d -e IRONPDF_ENGINE_LICENSE_KEY=MY_LICENSE_KEY --network=ironpdf-network --ip=172.19.0.2 --name=ironpdfengine --hostname=ironpdfengine -p 33350:33350 ironsoftwareofficial/ironpdfengine:2023.12.6

與 Docker Compose 一起

關鍵在於設置一個 Docker 網絡,使 IronPdfEngine 和您的應用程序可以相互看見。 將 'depends_on' 設定為確保 IronPdfEngine 啟動之前您的應用程式已經啟動。

設定

  1. 首先創建一個 docker-compose.yml 文件。使用以下模板設置您的 Docker Compose 文件:
version: "3.6"
services:
  myironpdfengine:
    container_name: ironpdfengine
    image: ironsoftwareofficial/ironpdfengine:latest
    ports:
      - "33350:33350"
    networks:
      - ironpdf-network
  myconsoleapp:
    container_name: myconsoleapp
    build:
      # enter YOUR project directory path here
      context: ./MyConsoleApp/
      # enter YOUR dockerfile name here, relative to project directory
      dockerfile: Dockerfile
    networks:
      - ironpdf-network
    depends_on:
      myironpdfengine:
        condition: service_started
networks:
  ironpdf-network: 
    driver: "bridge"
  1. 在您的應用程序中設置 IronPdfEngine 的地址(myconsoleapp)"myironpdfengine:33350"

  2. 執行 docker compose
docker compose up --detach --force-recreate --remove-orphans --timestamps

連接到IronPdfEngine

在 Docker 中運行您的 IronPDF 代碼,您的應用程式現在可以與 IronPdfEngine 通信了。!

:path=/static-assets/pdf/content-code-examples/how-to/ironpdfengine-docker-use.cs
using IronPdf;
using IronPdf.GrpcLayer;

// Configure for Docker container
var config = new IronPdfConnectionConfiguration();
config.ConnectionType = IronPdfConnectionType.Docker;
IronPdf.Installation.ConnectToIronPdfHost(config);

// Use IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>");
pdf.SaveAs("ironpdf.pdf");
Imports IronPdf
Imports IronPdf.GrpcLayer

' Configure for Docker container
Private config = New IronPdfConnectionConfiguration()
config.ConnectionType = IronPdfConnectionType.Docker
IronPdf.Installation.ConnectToIronPdfHost(config)

' Use IronPDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>")
pdf.SaveAs("ironpdf.pdf")
VB   C#

在 AWS ECS 上部署 IronPdfEngine

先決條件

設置

  1. 創建 ECS 集群。 按照本指南使用控制台為 Fargate 和 External 啟動類型創建叢集.

  2. 创建任务定义。 請遵循本指南以便使用控制台創建任務定義.

    建議設定:

    AWS Fargate

    • 建議至少配置 1 個 vCPU 及 2 GB 的 RAM。 根據您的工作負載,如果您正在處理的PDF文件超過10頁或遇到大量的請求,請選擇更高的等級。
    • 網路模式:awsvpc
    • 端口映射
    "containerPort": 33350,
    "hostPort": 33350,
    "protocol": "tcp",
    "appProtocol": "grpc"
  • 圖像 URI:指向我們的任何 IronPdfEngine。 例如,「ironsoftwareofficial/ironpdfengine:2024.1.20」(來自DockerHub)
  • AWS 權限網路由您自行負責
  • 建議啟用 Amazon CloudWatch。 (啟用日誌記錄)
  • 容器啟動順序在您想要在同一任務定義中部署應用程式容器時是必需的。
  1. 執行任務定義。 您可以將任務定義作為任務服務運行。 按照本指南使用控制台創建服務.

    建議設定:

    • 啟動類型:AWS Fargate
    • 公共 IP:測試時開啟,產品時關閉。 安全與 AWS 網路皆需自行負責。
  2. 享受! IronPdfEngine docker 已在您的 AWS 中啟動並運行。!

    [{我(水平擴展不受支持。 請參考IronPdfEngine 限制更多資訊。)}]


在 Azure 容器实例上部署 IronPdfEngine

先決條件

設置

  1. 创建 Azure 容器。 遵循此步骤在 Azure 中使用 Azure 入口網站部署容器實例的快速入門指南.

    建議設定:

    • 圖像來源:其他註冊表
    • 圖片: ironsoftwareofficial/ironpdfengine:2024.1.20(從 Docker Hub)
    • OS 類型:Linux
    • 大小:最小配置為 1 vCPU 和 2 GiB 內存,或更高。
    • 端口:TCP 端口 33350
  2. 享受! IronPdfEngine docker 已在您的 Azure 容器實例中運行。!

    [{我(水平擴展不受支持。 請參考IronPdfEngine 限制更多資訊。)}]


在 AWS ECR 公共圖庫中獲取 IronPdfEngine

先決條件

  • Docker 必須安裝。

設置

  1. 前往 https://gallery.ecr.aws/v1m9w8y1/ironpdfengine

  2. 拉取 v1m9w8y1/ironpdfengine 映像
docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine

或拉取特定版本(推薦)

docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine:2023.12.6
  1. 运行 ironpdfengine 容器。

    此命令將創建一個容器並在後台運行,端口為33350。

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

學習如何配置IronPdf客戶端以利用IronPdfEngine,請導航至"將代碼更新為使用IronPdfEngine.


從市場獲取IronPdfEngine

為了幫助您快速入門,我們已在 Azure 和 AWS 市集上設置了 IronPdfEngine。

Azure 市場

Azure 市場

設定

  1. 前往IronPDF Docker 容器在 Azure 市場上. 點擊“立即獲取”和“繼續”。

  2. 完成「基本資料」、「叢集詳情」和「應用程式詳情」以建立 Kubernetes 服務。

  3. 部署完成後,在左側的側邊欄中,前往 Kubernetes 資源 -> 執行命令。 運行以下命令:
kubectl get services
Kubernetes 服務 - 運行命令

使用 EXTERNAL-IP 和 PORT 的資訊(S),您可以相應地配置 IronPDFEngine 連接。

:path=/static-assets/pdf/content-code-examples/how-to/pull-run-ironpdfengine-azure-marketplace.cs
using IronPdf;
using IronPdf.GrpcLayer;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

IronPdfConnectionConfiguration configuration = new IronPdfConnectionConfiguration();
configuration.ConnectionType = IronPdfConnectionType.RemoteServer;
configuration.Host = "http://48.216.143.233";
configuration.Port = 80;
IronPdf.Installation.ConnectToIronPdfHost(configuration);

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
pdf.SaveAs("output.pdf");
Imports IronPdf
Imports IronPdf.GrpcLayer

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

Dim configuration As New IronPdfConnectionConfiguration()
configuration.ConnectionType = IronPdfConnectionType.RemoteServer
configuration.Host = "http://48.216.143.233"
configuration.Port = 80
IronPdf.Installation.ConnectToIronPdfHost(configuration)

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
pdf.SaveAs("output.pdf")
VB   C#

AWS Marketplace

AWS Marketplace

先决条件

  • Docker 必須安裝。
  • AWS CLI 必須安裝並登入。

    設定

  1. 前往IronPdfEngine 在 AWS 市場. 點擊「繼續訂閱」。

  2. 接受條款。

    接受最終用戶許可協議
  3. 繼續配置。

    訂閱完成
  4. 拉取 ironpdfengine 映像檔。 此步驟將向您展示拉取 ironpdfengine 映像的命令。
    啟動此軟體

    例如:

aws ecr get-login-password \
    --region us-east-1 
 docker login \
    --username AWS \
    --password-stdin 000000000000.dkr.ecr.us-east-1.amazonaws.com
CONTAINER_IMAGES="000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15"    
for i in $(echo $CONTAINER_IMAGES 
 sed "s/,/ /g"); do docker pull $i; done
  1. 運行 ironpdfengine 容器。 此命令將創建一個容器並讓其在背景中運行,使用端口33350。
docker run -d -p 33350:33350 000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15