accusoft/prizmdoc-application-servicesPrizmDoc 应用服务 (PAS) 是 PrizmDoc Viewer 产品后端的一部分(了解 PrizmDoc Viewer 的整体架构以及 PAS 在其中的作用)。
这是 PAS 的官方 Docker 镜像,可用于将 PAS 部署到 Docker 主机的生产环境。
注意: 此镜像适用于准备进行生产部署的客户。如果您只是想轻松评估产品并用于本地开发,建议您改用 accusoft/prizmdoc-viewer-eval Docker 镜像。
运行 PAS 容器只需 Docker 主机(安装了 Docker 的机器)。有关更多信息,请参阅 Docker 文档。
在运行此 Docker 镜像之前,必须 配置 Docker 以使用适当的硬件资源。如果尝试使用较少的 CPU 或内存运行镜像,可能无法正常工作。有关详细信息,请查看 服务器 sizing 指南 中的指导。
运行以下命令拉取最新的 PrizmDoc 应用服务镜像:
docker pull accusoft/prizmdoc-application-services
在运行 PAS 之前,需要配置文件(如果已有要使用的配置文件,可跳过至步骤 4)。可以使用此 Docker 镜像的 init-config 命令创建默认配置文件。本节说明如何操作。
首先,确保在主机文件系统上创建了 config 目录:
powershellmkdir config
然后,使用 init-config 命令创建新的 pcc.nix.yml 文件:
powershelldocker run --rm -e ACCEPT_EULA=YES --volume $pwd/config:/config accusoft/prizmdoc-application-services init-config
这将在 Windows 主机文件系统的 ./config/pcc.nix.yml 路径下创建新的 PAS 配置文件。
使用 init-config 命令创建新的 pcc.nix.yml 文件:
bashdocker run --rm -e ACCEPT_EULA=YES --volume $(pwd)/config:/config accusoft/prizmdoc-application-services init-config
这将在主机文件系统的 ./config/pcc.nix.yml 路径下创建新的 PAS 配置文件。
需要自定义 pcc.nix.yml 文件以适应 PAS 部署。
通常需要:
将 secretKey 更改为自定义值。
通过更新 pccServer 属性配置与 PrizmDoc Server 的连接:
如果使用自托管 PrizmDoc Server,配置可能如下:
ymlpccServer.hostName: my-prizmdoc-server-host pccServer.port: *** pccServer.scheme: http
如果使用 PrizmDoc Cloud:
ymlpccServer.hostName: api.accusoft.com pccServer.port: 443 pccServer.scheme: https pccServer.apiKey: YOUR_API_KEY
配置数据库连接。
PAS 必须使用数据库。如果尚无 PrizmDoc 要连接的数据库,可使用 MySQL Docker 镜像 轻松创建数据库。如果两个容器位于同一 用户定义的 Docker 网络 中,PrizmDoc 容器可通过数据库容器名称在连接字符串中引用它。
必须指定具有添加或修改表及记录权限的数据库用户,配置示例:
ymldatabase.adapter: mysql database.connectionString: "mysql://username:password@localhost:3306/prizmdb"
配置其他存储选项。
有关更多信息,请参阅 PAS 配置产品文档。
此步骤可选,因为数据库初始化会在 PAS 启动时自动完成。如果要在启动产品前手动初始化数据库,请按以下步骤操作。
确保在 pcc.nix.yml 文件中配置了数据库连接。如果配置文件中指定的数据库用户没有添加或修改表及记录的权限,必须通过环境变量提供具有权限的替代用户和密码。
有关用户权限要求以及 DATABASE_USER 和 DATABASE_PASSWORD 环境变量影响的更多信息,请参阅 如何手动运行 PAS 数据库脚本 文档。
若要使用配置文件中提供的用户以外的用户初始化数据库,请在命令中提供 DATABASE_USER 和 DATABASE_PASSWORD 环境变量:
powershelldocker run --rm --env ACCEPT_EULA=YES --env DATABASE_USER="prizm-user" --env DATABASE_PASSWORD="password" --volume $pwd/config:/config accusoft/prizmdoc-application-services init-database
若要使用配置文件中提供的用户初始化数据库,请运行以下命令:
注意: 如果之前已设置 DATABASE_USER 和 DATABASE_PASSWORD 环境变量,将优先使用它们而非配置文件中的数据库用户。
powershelldocker run --rm --env ACCEPT_EULA=YES --volume $pwd/config:/config accusoft/prizmdoc-application-services init-database
若要使用配置文件中提供的用户以外的用户初始化数据库,请在命令中提供 DATABASE_USER 和 DATABASE_PASSWORD 环境变量:
bashdocker run --rm --env ACCEPT_EULA=YES --env DATABASE_USER="prizm-user" --env DATABASE_PASSWORD="password" --volume $(pwd)/config:/config accusoft/prizmdoc-application-services init-database
若要使用配置文件中提供的用户初始化数据库,请运行以下命令:
注意: 如果之前已设置 DATABASE_USER 和 DATABASE_PASSWORD 环境变量,将优先使用它们而非配置文件中的数据库用户。
bashdocker run --rm --env ACCEPT_EULA=YES --volume $(pwd)/config:/config accusoft/prizmdoc-application-services init-database
假设已将 PAS 配置为使用端口 3000 并使用 ./config、./logs 和 ./data 目录,本节说明如何启动 PAS Docker 容器。
首先,创建日志和数据目录:
powershellmkdir logs mkdir data
然后,启动 pas 容器:
powershelldocker run -d --env ACCEPT_EULA=YES --publish 3000:3000 --volume $pwd/config:/config --volume $pwd/logs:/logs --volume $pwd/data:/data --name pas accusoft/prizmdoc-application-services
启动 pas 容器:
bashdocker run -d --env ACCEPT_EULA=YES --publish 3000:3000 --volume $(pwd)/config:/config --volume $(pwd)/logs:/logs --volume $(pwd)/data:/data --name pas accusoft/prizmdoc-application-services
在上述示例中:
-d 在后台以分离模式运行容器。--rm 确保容器停止时自动删除。--env ACCEPT_EULA=YES 表示您已接受 PrizmDoc Viewer 许可协议。--env DATABASE_USER="prizm-user" --env DATABASE_PASSWORD="password" 指定访问连接数据库时使用的用户和密码。
init-database 时,提供的用户必须具有创建和修改数据库表及其记录的权限。--publish 3000:3000 将容器端口发布到主机。假设 PAS 配置为使用端口 3000。如果配置为使用其他端口,请相应调整。--volume $(pwd)/config:/config 将主机配置目录映射到容器中。本地配置目录必须包含之前创建的 pcc.nix.yml 配置文件。--volume $(pwd)/logs:/logs 将本地日志目录映射到容器中。容器停止后,日志将保留在此目录中。--volume $(pwd)/data:/data 将本地数据目录映射到容器中。容器停止后,数据将保留在此目录中,重启容器时可再次使用。--name pas 设置运行容器的名称。accusoft/prizmdoc-application-services 是要运行的镜像。注意: 从 PrizmDoc Viewer v13.19 开始,Docker 容器启动单个 PAS 实例。需要 PAS 集群时,建议运行多个容器。但是,可以设置环境变量 LEGACY_RUN_MULTIPLE_INSTANCES=YES 在容器中运行多个 PAS 实例。实例数量取决于主机的 CPU 核心数。
GET http://localhost:3000/health 应返回 HTTP 200,表示 PAS 健康。
powershellInvoke-WebRequest -Uri http://localhost:3000/health
应输出类似内容:
StatusCode : 200 StatusDescription : OK Content : {79, 75} RawContent : HTTP/1.1 200 OK Connection: keep-alive Content-Length: 2 Date: Thu, 21 Nov 2019 17:49:35 GMT OK Headers : {[Connection, keep-alive], [Content-Length, 2], [Date, Thu, 21 Nov 2019 17:49:35 GMT]} RawContentLength : 2
bashcurl -i http://localhost:3000/health
应输出类似内容:
HTTP/1.1 200 OK Date: Wed, 20 Nov 2019 20:00:39 GMT Connection: keep-alive Content-Length: 2 OK
GET http://localhost:3000/servicesConnection 应返回 HTTP 200,表示 PAS 已正确配置以向 PrizmDoc Server 发送请求。
powershellInvoke-WebRequest -Uri http://localhost:3000/servicesConnection
应输出类似内容:
StatusCode : 200 StatusDescription : OK Content : {79, 75} RawContent : HTTP/1.1 200 OK Connection: keep-alive Content-Length: 2 Date: Thu, 21 Nov 2019 17:50:11 GMT OK Headers : {[Connection, keep-alive], [Content-Length, 2], [Date, Thu, 21 Nov 2019 17:50:11 GMT]} RawContentLength : 2
bashcurl -i http://localhost:3000/servicesConnection
应输出类似内容:
bashHTTP/1.1 200 OK Date: Wed, 20 Nov 2019 20:00:39 GMT Connection: keep-alive Content-Length: 2 OK
可以使用以下命令停止命名容器:
bashdocker stop pas
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务