如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像为i-net PDFC Server的预构建容器化版本,仅包含应用程序及运行所需工具。镜像不提供默认用户,首次使用需通过“Sign Up”功能创建用户。更多信息请访问i-net PDFC Server官网。
运行以下命令启动i-net PDFC Server容器:
bashdocker run -d -p 9000:9000 -e CONF_listener__port=9000 --name pdfc inetsoftware/i-net-pdfc-server
i-net PDFC Server容器可通过配置属性文件或环境变量进行预设配置。建议先在本地安装并配置,通过维护模块创建配置备份,以备份中的配置属性文件为基础进行自定义。
启动容器时需至少指定以下属性:CONF_listener__port(端口)和CONF_licensekey(许可证密钥)。私有云环境还需设置CONF_serverURL,其他环境也建议配置此属性。
可通过卷挂载或其他方式将指定配置添加到容器中。可使用默认配置文件,或通过环境变量指定自定义配置文件。详见环境变量矩阵。
环境变量命名规则:
CONF__.(点)替换为__(两个下划线)为确保配置可重现和更新,建议使用docker-compose.yml文件。
yamlversion: '2.1' services: pdfc: image: 'inetsoftware/i-net-pdfc-server:latest' restart: 'always' ports: - 9000:9000 environment: - DEFAULT_PROPFILE=/tmp/defaultConfiguration.properties - DEFAULT_CONFIG=User/Default # 设置外部可访问的服务器URL(取消注释并填入正确URL) #- CONF_serverURL=https://hostname.company.com:9443/ # 设置许可证密钥(取消注释并填入完整密钥) #- CONF_licensekey=... # 运行在指定端口以便映射 - CONF_listener__port=9000 # 自定义主题颜色 - CONF_theme__themecolors={"@base-color":"#0a89dd","@primary-color":"#42a7ca"} # 启用日志,输出到容器日志文件 - CONF_log__engine=true - CONF_log__file=/dev/stdout # 自动备份位置 - CONF_BackupLocation=/home/cowork/.i-net software/pdfc_User_Default/backup
如需特定需求(如预填充用户数据库),可创建自定义容器。
以下compose示例创建无需权限限制的服务器,可通过公共URL上下文直接使用,无需身份验证:
yamlversion: '2.1' services: pdfc: image: 'inetsoftware/i-net-pdfc-server:latest' restart: 'always' ports: # 不指定主机端口允许使用--scale扩展,但外部端口会变化 - 9000/tcp environment: # 云持久化环境必须使用System/Default配置 - DEFAULT_CONFIG=System/Default # 设置许可证密钥(取消注释并填入完整密钥) #- CONF_licensekey=... # 运行在指定端口以便映射 - CONF_listener__port=9000 # 仅启用访客账户,激活webapi和comparison.api - CONF_authentication__settings=[{"provider":"guest"}] - CONF_plugins__activated={"webapi.core":true,"comparison.api":true}
以下Dockerfile创建包含用户admin(密码password)的新容器:
DockerfileFROM inetsoftware/i-net-pdfc-server # 切换到root用户进行安装 USER root # 安装工具 RUN apk add --update linux-pam # 授予所有人PAM权限,创建登录用户 RUN chmod +r /etc/shadow \ && adduser -D -g "User" admin \ && echo admin:password | chpasswd \ && ln -s "/etc/pam.d/base-password" "/etc/pam.d/pdfc" # 启用系统登录(默认PAM插件已禁用) ENV CONF_authentication__settings="[{'provider':'system'},{'provider':'product','userCanRegister':'true'}]" ENV CONF_plugins__activated="{}" # 切换回产品用户 USER pdfc
i-net PDFC Server通过Tesseract库实现OCR功能,需创建安装Tesseract的自定义容器:
Dockerfile# 基于i-net PDFC基础镜像构建 FROM inetsoftware/i-net-pdfc-server # 切换到root用户进行安装 USER root RUN set -x \ && apk add --update tesseract-ocr # Tesseract需要此环境变量 ENV LC_ALL=C # 切换回产品用户 USER pdfc
如需容器重启后保留数据(如升级容器版本),建议挂载卷。配置和持久化数据位于产品用户的主目录下,可通过以下选项挂载:
bash-v /folder/to/mount/from:/home/$PRODUCT -e FORCE_IMPORT_CONFIG=0
-v /folder/to/mount/from:/home/$PRODUCT:将主机目录挂载到产品用户主目录-e FORCE_IMPORT_CONFIG=0:指定不覆盖已存在的挂载配置$PRODUCT变量取决于产品,可能值为:reporting、pdfc、cowork、helpdesk。
默认容器预装DejaVu等字体。如需添加受许可限制的字体(如微软Arial),需构建自定义容器。以下Dockerfile为基础示例:
Dockerfile############################################################################# # 准备产品环境 # 注意:由于新版本alpine的问题,使用alpine 3.12 FROM alpine:3.12 as builder RUN apk add --update msttcorefonts-installer \ && update-ms-fonts FROM inetsoftware/i-net-<PRODUCT>:<TAG> USER "root" # 从中间构建阶段复制字体 COPY --from=builder /usr/share/fonts/truetype/msttcorefonts /usr/share/fonts/truetype/msttcorefonts # 为产品用户更新字体缓存 USER $PRODUCT RUN fc-cache -fv /usr/share/fonts
| 属性名称 | 默认值 | 描述 |
|---|---|---|
DEFAULT_PROPFILE | /tmp/defaultConfiguration.properties | 初始设置使用的配置属性文件 |
DEFAULT_CONFIG | User/Default | 服务器启动时使用的配置 |
FORCE_IMPORT_CONFIG | 1 | 强制导入配置,覆盖已存在的配置。挂载配置时需设为0 |
DOCKER_ENTRYPOINT_SCRIPT | 启动服务器前运行的额外内联脚本 | |
CONF_systempermission__enabled | false | 系统权限默认禁用,即任何登录用户可访问系统所有功能。建议与认证设置一起自定义。 |
CONF_authentication__settings | [{'provider':'product','userCanRegister':'true'}] | 默认启用产品登录,允许创建新用户。生产环境应自定义此配置。 |
CONF_plugins__activated | {'authentication.pam':false} | PAM认证插件默认禁用(需创建自定义容器才能使用)。仅需将可选插件设为true启用;禁用非可选插件需设为false。 |
CONF_prop__name | 服务器初始化配置属性。prop__name由实际配置属性prop.name转换而来(可从之前的备份中获取)。 | |
inet_http_port | 覆盖配置中的默认HTTP端口,适用于共享云持久化环境 | |
inet_https_port | 覆盖配置中的默认HTTPS端口,适用于共享云持久化环境 | |
inet_persistence | 持久化存储URI,目前仅支持MongoDB。未设置时使用文件持久化。 |
无硬盘或文件系统可能随服务器实例消失的场景下,建议使用MongoDB持久化。技术细节详见文档。
通过环境变量inet_persistence配置持久化:
bashinet_persistence=<PERSISTENCE URI> # MongoDB示例 inet_persistence=mongodb://(<USERNAME>:<PASSWORD>@)<MONGODB SERVER>/<DATABASE>
如平台通过环境变量提供上述URI,需相应转发。
由于配置存储在持久化中,容器启动时可能需固定应用端口(如Heroku提供环境变量指定端口),通过inet_http_port或inet_https_port设置。
以下docker-compose.yml可作为MongoDB持久化部署的起点:
yamlversion: '2.1' services: pdfc: image: 'inetsoftware/i-net-pdfc-server:latest' restart: 'always' ports: # 不指定主机端口允许使用--scale扩展,但外部端口会变化 - 9000/tcp environment: # 云持久化环境必须使用System/Default配置 - DEFAULT_CONFIG=System/Default # 设置外部可访问的服务器URL(取消注释并填入正确URL) #- CONF_serverURL=https://hostname.company.com:9443/ # 设置许可证密钥(取消注释并填入完整密钥) #- CONF_licensekey=... # 运行在指定端口以便映射 - CONF_listener__port=9000 # 不强制覆盖已导入的配置(避免同一MongoDB的其他实例配置被修改) - FORCE_IMPORT_CONFIG=0 # 配置MongoDB持久化连接 - inet_persistence=mongodb://root:example@mongo:27017/pdfc mongo: image: mongo environment: MONGO_INITDB_ROOT_PASSWORD: example MONGO_INITDB_ROOT_USERNAME: root restart: always
FORCE_IMPORT_CONFIG应设为0,确保配置仅导入一次,以便在后续重启或扩展环境中重用。具体环境可能需设置更多选项,详见环境变量矩阵。
可通过负载均衡环境分发计算负载,每个节点同时作为前端和后端服务器。节点可通过MongoDB共享数据持久化,确保比较结果跨节点可用。
负载均衡器(如HAProxy)需支持粘性会话(sticky sessions),以确保登录用户始终定向到同一节点。
HAProxy可使用balance hdr(Cookie)配置。i-net PDFC与HAProxy的配置示例详见http://github.com/i-net-software/pdfc-haproxy-example%E3%80%82
可通过自定义Dockerfile构建或容器启动时动态安装额外插件。两种方式均使用容器的install-plugin命令:
bash/usr/share/product $ install-plugin --help Usage install all Plugins: /bin/install-plugin -p <product> -v <version> Usage install defined plugins: /bin/install-plugin -p <product> -v <version> <list of plugins to install> Usage install BETA Plugins: /bin/install-plugin -p <product> -v <version> -b <list of plugins to install> Usage install additional persistence: /bin/install-plugin -s <type>
插件名称可从插件商店URL的/pid后路径获取,例如:https://store.inetsoftware.de/pid/webapi.core → webapi.core。
不同持久化类型有专用容器:默认容器(无额外标签)已安装MongoDB持久化,其他可用持久化类型包括:mongodb、cosmosdb、dynamodb。
在Dockerfile中添加以下行安装插件:
Dockerfile# 安装Web API插件 RUN install-plugin web.api
在docker-compose.yml中通过命令安装插件:
yamlversion: '2.1' services: service: command: > sh -c " install-plugin web.api && ./startServer.sh -Dclearreports.config=User/Default -Dsetupautoexecution=true "
可通过docker inspect查看运行中容器的原始startServer.sh命令。示例为简化版,需补充具体容器定义。
当服务无响应但容器仍可访问时,可在容器内终止并重启服务器子进程,无需重启整个容器。操作步骤:进入容器终端,执行以下命令:
bashps xo pid,command | grep exitcode | grep -v grep | awk '{print $1}' | xargs -r kill -TERM
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

来自真实用户的反馈,见证轩辕镜像的优质服务