菜单

Docker 部署

相关源文件

本文档解释了如何使用 Docker 部署 Stirling-PDF。它涵盖了可用的 Docker 镜像变体、部署方法、配置选项和最佳实践。有关本地安装 Stirling-PDF 的信息,请参阅本地安装

可用的 Docker 镜像变体

Stirling-PDF 提供三种不同的 Docker 镜像变体,以满足不同的需求和硬件限制。

来源:.github/workflows/push-docker.yml92-103 .github/workflows/push-docker.yml137-151 .github/workflows/push-docker.yml168-183

镜像比较

功能常规超轻量版完整版
核心 PDF 操作
OCR 功能
文档转换
镜像大小中等最小最大
资源使用中等
高级功能部分最小完整版

来源:.github/workflows/push-docker.yml92-183 Dockerfile1-96

Docker 镜像标签

Stirling-PDF Docker 镜像遵循特定的标记约定

来源:.github/workflows/push-docker.yml78-89 .github/workflows/push-docker.yml124-165

基本部署方法

使用 Docker Run

要使用 Docker 部署常规 Stirling-PDF 镜像,请运行

使用 Docker Compose

创建一个 docker-compose.yml 文件

然后运行

来源:.github/workflows/testdriver.yml66-90

配置选项

环境变量

Stirling-PDF 支持各种环境变量来自定义其行为

来源:Dockerfile26-37 .github/workflows/testdriver.yml78-88 scripts/init.sh16-29

关键环境变量

可变描述默认值示例
DOCKER_ENABLE_SECURITY启用认证falsetrue
SYSTEM_DEFAULTLOCALE默认 UI 语言en-GBfr-FR
SYSTEM_MAXFILESIZE最大文件大小(MB)100500
TESSERACT_LANGS额外的 OCR 语言-deu,fra,ita
PUID容器用户的用户 ID10001001
PGID容器用户的组 ID10001001

来源:Dockerfile26-37 .github/workflows/testdriver.yml78-88

卷挂载

建议使用以下卷挂载以实现数据持久性

容器路径目的
/configs配置文件和设置
/logs应用程序日志
/usr/share/tessdata自定义 OCR 语言数据
/customFiles应用程序使用的自定义文件
/pipeline流水线配置和文件

来源:Dockerfile82 .github/workflows/testdriver.yml74-76

高级配置

安全配置

要启用用户认证和安全功能

DOCKER_ENABLE_SECURITY 设置为 true 时,容器将下载并使用启用安全功能的应用程序版本。

来源:scripts/download-security-jar.sh1-21 .github/workflows/releaseArtifacts.yml42-46

OCR 语言支持

常规镜像和完整镜像默认包含英语 OCR 支持。可以添加其他语言

这将在容器初始化期间安装德语、法语和意大利语 OCR 语言包。

来源:scripts/init.sh16-29 Dockerfile64-68

自定义 JVM 选项

您可以自定义 Java 运行时选项

容器将这些选项与 JAVA_BASE_OPTS 中设置的默认 JVM 选项结合使用。

来源:Dockerfile28 scripts/init-without-ocr.sh1-4

硬件要求

硬件要求因镜像变体和使用模式而异

镜像变体最低内存推荐内存CPU 核心数磁盘空间
超轻量版512MB1GB1500MB
常规1GB2GB21GB
完整版2GB4GB42GB

升级

升级到更新版本的 Stirling-PDF

  1. 拉取最新镜像

  2. 停止并移除现有容器

  3. 使用相同配置启动新容器

如果使用 Docker Compose

容器初始化过程

Docker 容器在启动时会执行多项初始化任务

来源:scripts/init.sh1-31 scripts/init-without-ocr.sh1-41 scripts/download-security-jar.sh1-22

资源管理

Docker 容器配置了优化的 JVM 设置来控制内存使用

  • JVM 配置为使用高达 75% 的可用内存(-XX:MaxRAMPercentage=75
  • 启用了 G1 垃圾收集器并开启了周期性收集
  • 启用了字符串去重以减少内存使用

来源:Dockerfile28

示例用例

最小部署(低资源)

适用于资源有限的服务器

适用于所有功能的生产环境

故障排除

常见问题

问题可能原因解决方案
容器立即退出卷挂载权限不足检查挂载卷的所有权
内存不足错误内存分配不足调整 JAVA_CUSTOM_OPTS 以限制内存使用
OCR 不工作缺少语言包设置 TESSERACT_LANGS 环境变量
登录不工作安全 JAR 未下载检查网络连接和版本标签

容器日志

检查容器日志以进行故障排除