这是i-net Clear Reports报表应用的预构建容器化版本。该容器仅包含应用程序及运行所需的工具。
容器不提供任何默认用户,您必须先使用“注册”方法。高级用例详见下文。
有关i-net Clear Reports的更多信息,请访问官方网站。
运行以下命令启动i-net Clear Reports服务器Docker容器:
bashdocker run -d -p 9000:9000 -e CONF_listener__port=9000 --name reporting inetsoftware/i-net-clear-reports
i-net Clear Reports Docker容器应使用配置属性文件或环境变量进行预配置。无论哪种方式,都应先创建具有特定设置的本地安装,通过维护模块创建配置备份,并以此备份中的配置属性文件为基础。
要使容器在启动时完全配置,至少需指定以下属性:CONF_listener__port和CONF_licensekey
在私有云环境中,还需设置CONF_serverURL属性。建议在其他环境中也设置此属性。
可通过卷或其他方式将指定配置添加到容器中以添加配置文件。可使用默认配置文件,或通过环境变量设置其他配置文件。详见环境属性矩阵。
创建环境变量名称需遵循以下规则:
CONF__为前缀.(点)替换为__(两个下划线)为使配置可重现和可更新,建议使用docker-compose.yml文件。
yamlversion: '2.1' services: reporting: image: 'inetsoftware/i-net-clear-reports: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/reporting/.i-net software/reporting_User_Default/backup
若有更具体的需求(如预填充用户数据库),应创建自定义容器。
使用以下compose示例可创建无权限限制的服务器,无需进一步身份验证即可通过公共URL上下文使用。
yamlversion: '2.1' services: reporting: image: 'inetsoftware/i-net-clear-reports:latest' restart: 'always' ports: # 不设置主机端口允许使用--scale,但外部端口会变化 - 9000/tcp environment: # 在云持久化环境中必须使用System/Default配置 - DEFAULT_CONFIG=System/Default # 设置许可证密钥(取消注释并插入完整许可证密钥) #- CONF_licensekey=... # 在预定义端口上运行应用以方便映射 - CONF_listener__port=9000 # 仅激活访客账户,激活webapi - CONF_authentication__settings=[{"provider":"guest"}] - CONF_plugins__activated={"webapi.core":true}
以下Dockerfile将在新容器中创建用户admin,密码为password。
DockerfileFROM inetsoftware/i-net-clear-reports # 切换到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/reporting" # 切换回产品用户 USER reporting
若要使容器数据在重启后持久化(例如用于新容器版本),应挂载卷。
持久化和配置位于产品用户的主文件夹中。应使用以下附加选项挂载此文件夹:
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等字体。添加额外字体(如许可受限的Microsoft字体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=<持久化URI> # MongoDB inet_persistence=mongodb://(<用户名>:<密码>@)<MongoDB服务器>/<数据库>
若平台通过环境变量提供这些URI,需相应转发。
由于配置存储在持久化中,可能需要在容器每次启动时将应用端口设为特定值(如Heroku提供环境变量)。此端口需通过环境变量inet_http_port或inet_https_port设置。
要使用Docker Compose将docker容器与MongoDB持久化捆绑,以下docker-compose.yml脚本可作为起点:
yamlversion: '2.1' services: reporting: image: 'inetsoftware/i-net-clear-reports: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/reporting mongo: image: mongo environment: MONGO_INITDB_ROOT_PASSWORD: example MONGO_INITDB_ROOT_USERNAME: root restart: always
应将FORCE_IMPORT_CONFIG设为0,使配置仅导入一次而非每次容器启动时导入。这样配置可在后续重启或扩展环境中持久化和重用。
根据具体环境可能需要设置更多选项。详见环境属性矩阵。
要在多个服务器节点间分配计算负载,可创建负载均衡环境。需注意每个节点同时作为前端和后端服务器。节点可共享数据持久化(使用MongoDB设置),使比较在节点间可用。
负载均衡器(如HAProxy)需支持某种粘性会话,确保登录用户始终定向到同一节点。
对于HAProxy,可使用balance hdr(Cookie)设置。要展示使用HAProxy的i-net Clear Reports设置,参见https://github.com/i-net-software/clear-reports-haproxy-example%E3%80%82
额外插件可在自定义Dockerfile构建期间或容器启动时添加。两种情况下均可使用容器的install-plugin命令:
bash/usr/share/product $ install-plugin --help 用法 安装所有插件: /bin/install-plugin -p <产品> -v <版本> 用法 安装指定插件: /bin/install-plugin -p <产品> -v <版本> <要安装的插件列表> 用法 安装BETA插件: /bin/install-plugin -p <产品> -v <版本> -b <要安装的插件列表> 用法 安装额外持久化: /bin/install-plugin -s <类型>
插件名称可从插件商店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命令。
示例不完整,需定义特定容器。
若服务无响应但容器仍可访问,可终止并重启服务器子进程,无需重启整个容器。此时,用户需通过shell进入容器并运行以下命令:
bashps xo pid,command | grep exitcode | grep -v grep | awk '{print $1}' | xargs -r kill -TERM
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务