
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!https://github.com/bcgov/common-document-generation-service/workflows/Tests/badge.svg https://api.codeclimate.com/v1/badges/b360d0b4c9ad56149499/maintainability](https://codeclimate.com/github/bcgov/common-document-generation-service/maintainability) https://api.codeclimate.com/v1/badges/b360d0b4c9ad56149499/test_coverage](https://codeclimate.com/github/bcgov/common-document-generation-service/test_coverage)
https://img.shields.io/docker/v/bcgovimages/common-document-generation-service.svg?sort=semver](https://hub.docker.com/r/bcgovimages/common-document-generation-service) https://img.shields.io/docker/pulls/bcgovimages/common-document-generation-service.svg](https://hub.docker.com/r/bcgovimages/common-document-generation-service) https://img.shields.io/docker/image-size/bcgovimages/common-document-generation-service.svg](https://hub.docker.com/r/bcgovimages/common-document-generation-service)
CDOGS - 一个通用托管服务(API),用于从模板、数据文档和资产生成文档。
要了解更多可用的通用服务,请访问https://bcgov.github.io/common-service-showcase/%E9%A1%B5%E9%9D%A2%E3%80%82
此API基于OpenAPI 3.0规范定义和描述。
API运行时,可通过ReDoc在http://localhost:3000/api/v2/docs查看规范(假设在本地运行此微服务)。
托管的CDOGS API通常可在https://cdogs.nrs.gov.bc.ca/api/v2/docs访问。
有关使用CDOGS及其底层Carbone库的更多详情,请查看使用指南。
CDOGS行为可通过环境变量高度自定义。以下是应了解的主要设置,完整支持的变量列表可在/app/config/custom-environment-variables.json中找到。有关配置如何级联和管理的更多详情,请参考https://www.npmjs.com/package/config%E5%BA%93%E3%80%82
以下变量会改变Carbone的行为及其缓存机制。
| 配置变量 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
cacheDir | CACHE_DIR | /tmp/carbone-files | 读写文件的根目录。若目录不存在且无法创建,将抛出错误。尝试回退到操作系统临时文件位置。 |
cacheSize | CACHE_SIZE | 2GB | cacheDir目录的最大大小。最旧时间戳的文件将被循环删除以腾出空间。使用https://www.npmjs.com/package/bytes%E5%BA%93%E8%A7%A3%E6%9E%90%E5%80%BC%E3%80%82 |
converterFactoryTimeout | CONVERTER_FACTORY_TIMEOUT | 60000 | Carbone转换文件的最长时间(毫秒),超时后终止。 |
formFieldName | UPLOAD_FIELD_NAME | template | 通过/template API上传模板时,多部分表单数据的字段名。 |
startCarbone | START_CARBONE | true | 若为true,应用启动时将启动carbone转换器,确保首次调用/render时不会产生启动转换器的开销。 |
uploadCount | UPLOAD_FILE_COUNT | 1 | 每次调用允许上传的文件数量。默认值为1,不建议修改。 |
uploadSize | UPLOAD_FILE_SIZE | 25MB | 模板文件大小限制。使用https://www.npmjs.com/package/bytes%E5%BA%93%E8%A7%A3%E6%9E%90%E5%80%BC%E3%80%82 |
以下变量会改变CDOGS的认证行为。默认情况下,若KC_ENABLED未设置/未定义,CDOGS将运行在未认证模式,忽略其他Keycloak环境变量。若需启用认证,需将KC_ENABLED设置为true。
| 配置变量 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
clientId | KC_CLIENTID | CDOGS的Keycloak客户端ID | |
clientSecret | KC_CLIENTSECRET | CDOGS的Keycloak客户端密钥 | |
enabled | KC_ENABLED | 是否运行在未认证模式或Keycloak保护模式 | |
publicKey | KC_PUBLICKEY | 若指定,将使用提供的公钥验证所有传入JWT签名 | |
realm | KC_REALM | jbd6rnxw | CDOGS的Keycloak领域 |
serverUrl | KC_SERVERURL | https://dev.oidc.gov.bc.ca/auth | CDOGS认证的Keycloak服务器URL |
以下变量会改变Express应用的常规行为。大多数情况下,默认值已足够。
| 配置变量 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
bodyLimit | SERVER_BODYLIMIT | 100mb | CDOGS接受的最大请求体长度 |
logFile | SERVER_LOGFILE | 若定义,将日志输出写入指定文件 | |
logLevel | SERVER_LOGLEVEL | info | 日志级别/详细程度 |
morganFormat | SERVER_MORGANFORMAT | dev | HTTP请求日志的morgan格式。选项:dev和combined |
port | SERVER_PORT | 3000 | CDOGS应用绑定的端口 |
以下部分提供快速设置和运行CDOGS的方法。
本节假设环境中已安装最新版本的Docker。在继续前,请确保了解传入应用的环境变量。
获取CDOGS镜像(如需特定版本,将latest标签改为具体版本):
shdocker pull bcgovimages/common-document-generation-service:latest
以未认证模式运行CDOGS:
shdocker run -it --rm -p 3000:3000 bcgovimages/common-document-generation-service:latest
以Keycloak保护模式运行CDOGS(必要时替换环境变量值):
shdocker run -it --rm -p 3000:3000 -e KC_CLIENTID=<id> -e KC_CLIENTSECRET=<secret> -e KC_ENABLED=true -e KC_PUBLICKEY=<publickey> -e KC_REALM=<realm> -e KC_SERVERURL=<url> bcgovimages/common-document-generation-service:latest
在Docker环境中部署CDOGS时,建议为缓存目录使用持久卷。
本节假设已安装最新版本的Node.js(12.x或更高)和LibreOffice(6.3.4.x或更高)。在继续前,请确保了解传入应用的环境变量。
配置
配置管理使用https://www.npmjs.com/package/config%E5%BA%93%E3%80%82%E6%9C%89%E4%B8%A4%E7%A7%8D%E9%85%8D%E7%BD%AE%E6%96%B9%E5%BC%8F%EF%BC%9A
local.json文件(此文件不应加入源代码控制)。若要在运行单元测试时使用不同配置,可创建local-test.json文件。更多详情,请参考config库https://github.com/lorenwest/node-config/wiki/Configuration-Files%E3%80%82
常用命令
使用npm ci或npm install安装Node依赖:
shnpm install
开发模式运行服务器(热重载):
shnpm run serve
非热重载模式运行服务器:
shnpm run start
运行测试:
shnpm run test
代码检查(lint):
shnpm run lint
txt版权所有 2019 不列颠哥伦比亚省 根据Apache许可证2.0版("许可证")授权;除非符合许可证的规定,否则不得使用此文件。您可以在以下位置获取许可证副本: http://www.apache.org/licenses/LICENSE-2.0 除非适用***要求或书面同意,否则根据许可证分发的软件按"原样"分发,不附带任何明示或暗示的担保或条件。有关许可证下权限和限制的具体语言,请参阅许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务