
如果你使用 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://img.shields.io/docker/pulls/knowagelabs/knowage-server-docker.svg](https://hub.docker.com/r/knowagelabs/knowage-server-docker/)
Knowage是用于对传统数据源和大数据系统进行现代业务分析的专业开源套件。
knowage-suite.com
与前身(即SpagoBI)不同,您可以使用docker-compose或Docker Swarm搭配MySQL容器运行Knowage,只需一个命令即可完成部署。
这两种方式都需要通过一个简单的https://docs.docker.com/compose/compose-file/%E6%A0%BC%E5%BC%8F%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E6%9D%A5%E6%8F%8F%E8%BF%B0%E5%BF%85%E9%A1%BB%E8%BF%90%E8%A1%8C%E7%9A%84%E5%AE%B9%E5%99%A8%E3%80%82
请注意,本项目中的两个YAML文件中,DBMS均将其数据存储在名为db的卷中,以确保在DBMS多次运行之间数据持久化。如果需要重置数据库数据,您需要删除该卷。
如果您想在本地机器上以最小配置运行Knowage进行测试,在包含docker-compose.yml文件的文件夹中运行以下命令:
console$ docker-compose up
这将以附加模式启动DBMS和Knowage:您可以同时查看两个容器的日志。要停止两个容器,可以使用CTRL+C。如果想以分离模式运行Knowage,请使用-d选项:
console$ docker-compose up -d
如果要删除Knowage创建的所有容器,只需使用:
console$ docker-compose down
在这种情况下,您还可以使用-v选项删除存储在相关卷中的DBMS所有数据。
如果您想在Docker Swarm集群中运行Knowage,支持扩展主应用或数据库、创建复杂部署配置或通过Docker Secrets增强安全性,请在包含docker-swarm.yml文件的文件夹中运行以下命令:
console$ docker stack deploy -c docker-swarm.yml knowage
如果要停止Knowage并删除所有创建的容器,可以使用:
console$ docker stack rm knowage
Knowage需要一组特定的环境变量才能正确启动:
DB_USER:必填 - 指定数据库用户。DB_PASS:必填 - 指定数据库用户密码。DB_ROOT_PASS:必填 - 设置数据库root密码。DB_DB:必填 - 指定数据库名称。DB_HOST:必填 - 定义数据库主机。DB_PORT:必填 - 指定数据库端口。HMAC_KEY:必填 - 定义将在Tomcat配置中设置的HMAC密钥;如果未提供,将随机生成。PASSWORD_ENCRYPTION_SECRET:必填 - 定义用于加密密码的密钥;如果未提供,将随机生成。PUBLIC_ADDRESS:可选 - 定义容器外部可见的Knowage IP主机(例如http://$PUBLIC_ADDRESS:8080/knowage),即Knowage URL的主机部分。如果未设置(如上述示例),默认值为容器IP。您可以使用虚拟机IP(在OSX或Windows环境中)或localhost(如果映射容器端口)。您可以编辑.env文件来设置所需的所有变量。
如果在Docker Swarm中运行Knowage,您可能希望使用Secrets来定义上述变量的值。如果在前面的环境变量名称后追加_FILE,您可以指定一个Docker Secret的路径,该Secret将对运行中的容器可用。
例如,如果创建以下Secrets:
console$ printf "knowageuser" | docker secret create knowage_db_user - $ printf "knowagepassword" | docker secret create knowage_db_pass - $ printf "knowagedb" | docker secret create knowage_db_host - $ printf "3306" | docker secret create knowage_db_port - $ printf "knowagedb" | docker secret create knowage_db_db - $ printf "knowagerootpassword" | docker secret create knowage_db_root_pass - $ printf "abc123" | docker secret create knowage_hmac_key - $ printf "def456" | docker secret create knowage_password_encryption_secret_key -
您可以创建如下Docker Swarm的YAML文件:
consoleversion: "3.1" services: knowage: image: docker.xuanyuan.run/knowagelabs/knowage-server-docker:7.2 ports: - "8080:8080" environment: - DB_USER_FILE=/run/secrets/knowage_db_user - DB_PASS_FILE=/run/secrets/knowage_db_pass - DB_DB_FILE=/run/secrets/knowage_db_db - DB_HOST_FILE=/run/secrets/knowage_db_host - DB_PORT_FILE=/run/secrets/knowage_db_port - HMAC_KEY_FILE=/run/secrets/knowage_hmac_key - PASSWORD_ENCRYPTION_SECRET_FILE=/run/secrets/knowage_password_encryption_secret_key
详见docker-swarm.yml示例。
默认情况下,Knowage容器运行在8080/tcp端口,如示例YAML文件所示。如果将PUBLIC_ADDRESS环境变量设置为localhost或127.0.0.1,您可以在浏览器中访问:
http://localhost:8080/knowage
即可看到Knowage的登录页面。如果未出现此页面,您需要检查Docker配置以查看容器端口暴露在哪个网络接口上:默认情况下,Docker应使用主机上的所有网络接口(IP 0.0.0.0表示所有接口)。
如果需要仅在特定IP上暴露端口,需在端口声明中添加该IP,例如:
consoleversion: "3.1" services: knowage: image: docker.xuanyuan.run/knowagelabs/knowage-server-docker:7.2 ports: - "127.0.0.1:8080:8080" ...
默认可用用户如下:
| 用户 | 密码 |
|---|---|
| biadmin | biadmin |
| bidev | bidev |
| biuser | biuser |
有关此镜像中包含的软件的许可证信息,请https://github.com/KnowageLabs/Knowage-Server/%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务