
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
veraPDF-rest是基于Dropwizard构建的REST服务镜像,提供PDF/A和PDF/UA格式验证功能。该镜像包含Web界面、REST API及Swagger文档,支持根据请求的Content-Type返回XML或JSON格式结果。作为开发原型,其技术栈包括Jetty(HTTP服务器)、Jersey(REST服务)和Jackson(序列化),适用于快速部署PDF验证服务的场景。
Accept返回XML或JSON格式数据http://localhost:8080/swagger访问API详情适用于需要快速部署PDF/A或PDF/UA格式验证服务的开发、测试环境,可作为独立服务运行,或集成到自动化测试、文档处理流程中。支持单机轻量部署和集群规模化部署,满足不同场景下的验证需求。
直接拉取并启动官方镜像:
bashdocker run -d -p 8080:8080 -p 8081:8081 verapdf/rest:latest
端口说明:
Docker构建
使用多阶段构建生成优化镜像(需本地克隆项目):
bash# 克隆项目仓库 git clone https://github.com/veraPDF/veraPDF-rest.git cd veraPDF-rest # 切换至稳定版分支(master)或开发版分支(integration) git checkout master # 构建并运行镜像 docker build -t verapdf-rest:latest . && docker run -d -p 8080:8080 -p 8081:8081 verapdf-rest:latest
注意:若运行时出现"Can't set cookie dm_task_set_cookie failed"错误,执行以下命令修复:
bashsudo dmsetup udevcomplete_all
Kubernetes部署
通过Kubernetes配置实现负载均衡和动态扩缩容(2-4副本):
bashkubectl apply -f kubernetes.yaml
本地Maven构建运行
需Maven环境,直接构建并运行jar包:
bash# 克隆并进入项目目录 git clone https://github.com/veraPDF/veraPDF-rest.git cd veraPDF-rest git checkout master # 构建Maven项目 mvn clean package # 启动服务 java -jar target/verapdf-rest-1.26.5.jar server server.yml
服务启动后,可访问http://localhost:8080/api/info验证运行状态,返回包含OS、Java版本、服务器IP等信息的环境数据。
API环境信息服务
查询服务器环境信息:
bashcurl localhost:8080/api/info
验证配置文件服务
验证配置文件包含PDF/A和PDF/UA的验证规则,支持以下操作:
列出所有配置文件:
bashcurl localhost:8080/api/profiles
列出所有配置文件ID:
bashcurl localhost:8080/api/profiles/ids
获取指定ID的配置文件(如1b对应PDF/A-1b):
bash# 默认返回JSON curl localhost:8080/api/profiles/1b # 返回XML格式 curl localhost:8080/api/profiles/1b -H "Accept:application/xml"
验证服务
支持本地文件上传或URL指定文件验证:
上传本地文件验证(以配置文件1b为例):
bashcurl -F "file=@本地文件路径.pdf" localhost:8080/api/validate/1b # 返回XML格式 curl -F "file=@本地文件路径.pdf" localhost:8080/api/validate/1b -H "Accept:application/xml"
验证URL文件:
bashcurl -F "url=http://示例.com/test.pdf" localhost:8080/api/validate/url/1b
验证Docker挂载文件(需先挂载本地目录):
bash# 挂载本地目录并启动容器 docker run -d -p 8080:8080 -p 8081:8081 -v /本地目录:/home/folder verapdf/rest:latest # 验证挂载的文件 curl -F "url=file:///home/folder/test.pdf" localhost:8080/api/validate/url/1b
指定文件大小(通过X-File-Size头,单位:字节):
bashcurl -H "X-File-Size: 307200" -F "url=http://示例.com/test.pdf" localhost:8080/api/validate/url/auto
配置文件位于容器内/opt/verapdf-rest/config目录,包含server.yml(Dropwizard配置)及veraPDF验证参数(详见veraPDF CLI配置文档)。
关键配置项
最大PDF文件大小:
server.yml的maxFileSize配置bashdocker run -d -p 8080:8080 -p 8081:8081 -e VERAPDF_MAX_FILE_SIZE=1 verapdf/rest:latest
Java最大堆大小:通过JAVA_OPTS环境变量设置:
bashdocker run -d -p 8080:8080 -p 8081:8081 -e JAVA_OPTS="-Xmx128M" verapdf/rest:latest
其他服务器参数:如线程数、队列大小等,详见Dropwizard配置参考。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务