托管自己的 IronPDF Docker 容器

This article was translated from English: Does it need improvement?
Translated
View the article in English
仅适用于 IronPDF v.2023.2.x 及以上版本

IronPdfEngine 是一种 gRPC 服务,可以处理 PDF 的创建、编写、编辑和读取。

IronPDF Docker 可以运行与 IronPDF 兼容版本的 docker 服务。 (v2023.2.x 及以上版本).这将帮助开发人员消除使用 IronPDF 时可能遇到的部署问题。

Why

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

第 1 步 - 安装 IronPDF

在项目中添加 IronPdf.Slim Nuget 包。

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

更多信息 https://ironpdf.com/docs/

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

为减小应用程序大小,我们建议只安装 IronPdf.Slim。IronPdf.Native.Chrome.xxx "包已不再使用,因此您可以将其从项目中移除。

第 2 步 - 确定所需的容器版本

默认情况下,IronPDF for Docker 的版本与 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#

第 3 步 - 为 Docker 容器设置 IronPDF

步骤 3.i - 不使用 Docker Compose

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

例如 IronPDF for Docker version e.g. 2023.2.1


docker network create -d bridge --attachable --subnet=172.19.0.0/16 -gateway=172.19.0.1 ironpdf-network

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

33350 端口是 IronPdfEngine 的默认内部端口。

现在 IronPDF for Docker 已启动并运行!

步骤 3.ii - 使用 Docker Compose

使用以下模板设置 Docker Compose 文件:

version: "3.3"

services:
  ironpdfengine:
    container_name: ironpdfengine
    image: ironsoftwareofficial/ironpdfengine:latest
    networks:
      ironpdf-network:
        ipv4_address: 172.19.0.2
  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:
        ipv4_address: 172.19.0.3
    depends_on:
      ironpdfengine:
        condition: service_started

networks:
  ironpdf-network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.19.0.0/16
          gateway: 172.19.0.1
YAML

然后像下面这样运行你的 docker compose 命令:

docker compose up --detach --force-recreate --remove-orphans --timestamps

第 4 步 - 配置 IronPDF 客户端

添加这一行

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

var config = new IronPdfConnectionConfiguration();
config.ConnectionType = IronPdfConnectionType.Docker;
IronPdf.Installation.ConnectToIronPdfHost(config);
Imports IronPdf.GrpcLayer

Private config = New IronPdfConnectionConfiguration()
config.ConnectionType = IronPdfConnectionType.Docker
IronPdf.Installation.ConnectToIronPdfHost(config)
VB   C#

第 5 步 - 享受

运行你的 IronPDF 代码,现在你的应用程序可以与 Docker 中的 IronPdfEngine 通信了!

客户端测试代码

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

var config = new IronPdfConnectionConfiguration();
config.ConnectionType = IronPdfConnectionType.Docker;
IronPdf.Installation.ConnectToIronPdfHost(config);

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

Private config = New IronPdfConnectionConfiguration()
config.ConnectionType = IronPdfConnectionType.Docker
IronPdf.Installation.ConnectToIronPdfHost(config)

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