手册
1. 禅道介绍
1.1 关于禅道项目管理软件
1.2 如何获得支持
1.3 各版本功能差异
1.4 关注我们
2. 安装禅道
2.1. 环境搭建
2.1.1 搭建Ubuntu环境安装禅道
2.1.2 搭建Centos环境安装禅道
2.1.3 安装PHP的ioncube扩展
2.2. 安装禅道新版本
2.2.1 选择适合您的安装方法
2.2.2 新版本禅道的安装升级
2.2.3 Windows一键安装包(新版)
2.2.4 Windows一键安装包(旧版)
2.2.5 linux用一键安装包(推荐)
2.2.6 使用源码包安装(各系统通用)
2.2.7 使用源码包安装(MAC系统)
2.2.8 基于禅道当前的一键安装包(Windows和Linux)如何源码安装旗舰版禅道
2.2.9 渠成命令行安装禅道
2.2.10 Docker和Kubernetes方式部署禅道
2.3. 安装12开源版
2.3.1 选择适合您的安装方法
2.3.2 使用云禅道在线项目管理服务
2.3.3 (推荐)windows用一键安装包安装
2.3.4 (推荐)Linux用一键安装包
2.3.5 linux下用lampp集成包安装
2.3.6 使用源码包安装(MAC系统)
2.3.7 MAC下用XAMPP安装禅道
2.3.8 MAC下用XAMPP-VM安装禅道
2.3.9 使用源码包安装(各系统通用)
2.3.10 宝塔面板安装禅道
2.3.11 华芸NAS在线安装
2.3.12 Centos7.4系统下安装httpd,mariadb,php7.2环境运行禅道
2.3.13 Centos8系统下安装httpd,mariadb,php7.2环境运行禅道
2.3.14 安装ioncube扩展
2.3.15 安装swoole扩展
2.3.16 Docker方式部署禅道
2.4. 安装12企业版
2.4.1 禅道企业版安装包安装方式(各系统通用)
2.4.2 (推荐)Windows一键安装包安装
2.4.3 (推荐)Linux一键安装包安装
2.4.4 centos 7.x 源码安装禅道企业版
2.5 安装PHP的LDAP扩展
2.6 在线安装云禅道
3. 升级禅道
3.1. 升级12开源版
3.1.1 选择和自己环境对应的升级方式
3.1.2 通过源代码方式升级(通用)
3.1.3 windows一键安装包的升级
3.1.4 linux一键安装包升级
3.2. 升级12企业版
3.2.1 安装包方式升级
3.2.2 开源版升级到企业版
3.3. 升级禅道新版本
3.3.1 选择和自己环境对应的升级方式
3.3.2 通过源代码方式升级(通用)
3.3.3 windows一键安装包的升级
3.3.4 linux一键安装包升级
3.3.5 docker安装禅道-升级禅道
3.3.6 旧版Docker镜像升级说明
3.3.7 通过Roadrunner管理定时任务
3.4 如何安装ioncube扩展
4. 维护配置
4.1. 维护禅道
4.1.1 初始化管理脚本
4.1.2 备份禅道
4.1.3 恢复删除的资源
4.1.4 如何更新燃尽图
4.1.5 一键安装包如何实现mysql异机连接
4.1.6 linux一键安装包配置https
4.2. 配置禅道
4.2.1 设置是否允许匿名访问
4.2.2 如何配置email发信
4.2.3 如何成为超级管理员
4.2.4 配置禅道系统为静态访问
4.2.5 去掉禅道访问地址中的zentao
4.2.6 linux一键安装包去掉禅道访问地址中的zentao
4.2.7 集成禅道和svn
4.2.8 集成禅道和git
4.2.9 在第三方应用中集成禅道
4.2.10 第三方应用配置免密登录禅道
4.2.11 第三方应用集成禅道客户端进行消息通知
4.2.12 集成webhook
4.2.13 集成ZDOO
4.2.14 客户端集成
4.2.15 禅道的翻译功能
4.2.16 浏览器通知的设置
4.2.17 集成钉钉工作消息通知
4.2.18 集成企业微信应用消息通知
4.2.19 集成飞书群机器人
4.2.20 集成飞书消息通知
4.2.21 集成版本库、集成Jenkins,并进行构建
4.2.22 解决一键安装包密码口令弱的问题
4.3. 性能优化
4.3.1 nginx反向代理禅道502或504bad gateway错误
4.3.2 linux系统中配置session使用redis
5. 快速入门
5.1. 12版本快速入门
5.1.1 禅道使用的基本流程和产品、研发、测试之间的三权分立
5.1.2 禅道的新手教程
5.1.3 创建第一个产品
5.1.4 添加第一个需求
5.1.5 开始第一个项目
5.1.6 确定项目要完成的需求列表
5.1.7 为需求分解任务
5.1.8 提交bug
5.1.9 禅道的自定义功能
5.1.10 文档管理
5.1.11 如何排查产品、项目是否有访问权限
5.1.12 年度总结,工作内容统计一览表说明
5.2. 12版创建分组和用户
5.2.1 建立部门结构
5.2.2 添加一个用户帐号
5.2.3 批量维护帐号
5.2.4 设置分组,建立权限体系
5.3. 12版本最简使用
5.3.1 使用禅道来进行项目任务管理
5.3.2 只使用禅道来做bug管理
5.3.3 只使用禅道来进行产品管理
5.3.4 个人使用禅道来做事务跟踪管理
5.4. 12版本基本使用
5.4.1 敏捷开发及scrum简介
5.4.2 禅道和scrum的对应关系
5.4.3 视频教程:第一个演示项目
5.4.4 维护联系人
5.4.5 导入excel、csv参考文档
5.4.6 工作方式的切换
5.4.7 操作获取积分功能
5.4.8 自定义必填项功能
5.5. 12版本进阶使用
5.5.1. 使用流程
5.5.1.1 禅道使用流程图解
5.5.2. 个人管理
5.5.2.1 使用待办进行个人事务管理
5.5.2.2 关注需要自己处理的任务、需求、bug
5.5.2.3 通过我的档案查看或者修改个人信息
5.5.2.4 视频教程:禅道使用之个人篇
5.5.3. 产品经理篇
5.5.3.1 维护产品
5.5.3.2 维护产品线
5.5.3.3 创建和评审需求
5.5.3.4 变更和评审需求
5.5.3.5 需求的状态和研发阶段
5.5.3.6 需求的注意事项
5.5.3.7 维护产品模块
5.5.3.8 建立发布计划
5.5.3.9 建立发布
5.5.3.10 路线图
5.5.3.11 文档管理
5.5.3.12 主持产品会议
5.5.3.13 参与项目管理、演示和总结
5.5.3.14 需求的基本统计报表
5.5.3.15 视频教程:禅道使用之产品经理篇
5.5.4. 项目经理篇
5.5.4.1 建立项目
5.5.4.2 组建项目团队
5.5.4.3 确定项目要完成的需求列表
5.5.4.4 组织进行任务分解
5.5.4.5 召开每天的站立会议
5.5.4.6 通过燃尽图了解项目的进展
5.5.4.7 通过各种列表的各种功能了解项目进展
5.5.4.8 召开演示会议和总结会议
5.5.4.9 项目任务基本的报表统计
5.5.4.10 视频教程:禅道使用之项目经理篇
5.5.5. 开发团队篇
5.5.5.1 参加项目计划会议,分解任务
5.5.5.2 领取任务,并每天更新任务
5.5.5.3 通过看板和树状图查看任务
5.5.5.4 创建版本
5.5.5.5 申请测试
5.5.5.6 解决bug
5.5.5.7 文档管理
5.5.5.8 确认bug
5.5.5.9 视频教程:禅道使用之开发团队篇
5.5.6. 测试团队篇
5.5.6.1 维护bug视图模块
5.5.6.2 提交bug
5.5.6.3 验证bug,关闭
5.5.6.4 激活bug
5.5.6.5 找到自己需要的bug
5.5.6.6 维护测试用例视图
5.5.6.7 创建测试用例
5.5.6.8 测试套件、报告和公共用例库的维护
5.5.6.9 管理测试版本
5.5.6.10 执行用例,提交Bug
5.5.6.11 查看报表统计
5.5.6.12 视频教程:禅道使用之测试团队篇
5.6. 12版本企业版使用
5.6.1 开源版功能
5.6.2 添加用户和权限维护
5.6.3 甘特图功能简介
5.6.4 工作日志管理功能简介
5.6.5 代码库(SVN GIT)及代码评审
5.6.6 日历功能简介
5.6.7 Excel导入导出功能简介
5.6.8 短信通知功能简介
5.6.9 运维管理
5.6.10 导出为Word功能简介
5.6.11 水晶报表(自定义报表)功能简介
5.6.12 LDAP用户验证功能简介
5.6.13 反馈管理
5.6.14 统计视图功能简介
5.6.15 文档管理
5.6.16 报表导出功能简介
5.6.17. 办公管理
5.6.17.1 考勤
5.6.17.2 请假
5.6.17.3 补班
5.6.17.4 加班
5.6.17.5 调休
5.6.17.6 节假日
5.6.18. 工作流
5.6.18.1 工作流内置流程
5.6.18.2 工作流功能简介
5.6.18.3 自定义内置工作流
5.6.18.4 新增工作流示例
5.6.18.5 工作流 JS、CSS 使用说明
5.6.19 视频及PPT资料
5.7. 新版本快速入门
5.7.1 15后新版本禅道的新增功能
5.7.2 15后新版本禅道的界面变化
5.7.3 15后新版本禅道的最简使用
6. 按照角色使用
6.1. 管理员
6.1.1 维护组织部门
6.1.2 维护用户
6.1.3 维护权限
6.1.4. 办公管理(企业版)
6.1.4.1 考勤(企业版)
6.1.4.2 请假(企业版)
6.1.4.3 补班(企业版)
6.1.4.4 加班(企业版)
6.1.4.5 调休(企业版)
6.1.4.6 节假日(企业版)
6.1.4.7 审批(企业版)
6.1.5. 工作流(企业版)
6.1.5.1 内置工作流(企业版)
6.1.6 短信通知(企业版)
6.1.7. 运维管理(企业版)
6.1.7.1 ZAgent的使用(企业版)
6.1.7.2 虚拟机的使用
6.1.8 LDAP用户验证(企业版)
6.2. 项目集负责人
6.2.1 创建项目集
6.2.2 添加产品
6.2.3 创建项目
6.2.4 管理人员
6.2.5 添加干系人
6.2.6 可视化大屏(企业版)
6.3. 产品经理
6.3.1 创建产品
6.3.2 维护模块
6.3.3 产品多分支/平台管理
6.3.4 维护计划
6.3.5 维护需求
6.3.6 需求的评审
6.3.7 创建发布
6.3.8 跟踪进度
6.3.9 反馈管理(企业版)
6.4. 项目经理
6.4.1 维护项目和执行
6.4.2 维护团队
6.4.3 关联需求
6.4.4 分解任务
6.4.5 跟踪进度
6.4.6 甘特图(企业版)
6.4.7 代码评审(企业版)
6.4.8 瀑布项目的使用
6.4.9. 瀑布项目特有功能(旗舰版)
6.4.9.1 维护项目的计划、阶段(旗舰版)
6.4.9.2 项目设计、矩阵(旗舰版)
6.4.9.3 项目评审、配置(旗舰版)
6.4.9.4 项目报告、挣值管理(旗舰版)
6.4.9.5 项目调研、估算(旗舰版)
6.4.9.6 项目问题、风险、机会(旗舰版)
6.4.9.7 项目过程、度量、QA(旗舰版)
6.4.9.8 项目培训、会议(旗舰版)
6.4.10 看板项目的使用
6.4.11 融合敏捷项目
6.4.12 融合瀑布项目
6.4.13 文档管理(企业版)
6.4.14 Excel 导入导出(企业版)
6.4.15 Word 导出(企业版)
6.4.16 统计(企业版)
6.4.17 报表导出(企业版)
6.4.18 资产库管理
6.5. 研发人员
6.5.1 参加产品计划会议,分解任务
6.5.2 领取任务,并每天更新任务
6.5.3 创建版本,提交测试
6.5.4 确认Bug,解决Bug
6.5.5 执行的综合、需求、Bug、任务看板
6.6. 测试人员
6.6.1 撰写用例
6.6.2 执行用例
6.6.3 提交Bug
6.6.4 验证和关闭BUG
7. 功能介绍
7.1. 新增概念
7.1.1 项目集(Program)
7.1.2 项目(Project)
7.1.3 产品(Product)
7.1.4 管理模型
7.2. 地盘
7.2.1 新手引导
7.2.2 全局添加
7.2.3 首页区块
7.2.4 新增内容
7.2.5 工作日志(企业版)
7.2.6 日历(企业版)
7.3. 项目集
7.3.1 项目集列表
7.3.2 项目集看板
7.3.3 创建项目集
7.3.4 分解子项目集
7.4. 产品
7.4.1 创建产品
7.4.2 维护模块
7.4.3 产品多分支/平台管理
7.4.4 维护计划
7.4.5 维护需求
7.4.6 需求的评审
7.4.7 创建发布
7.4.8 跟踪进度
7.5. 项目
7.5.1. 项目通用功能
7.5.1.1 项目的基本设置
7.5.1.2 维护项目的执行
7.5.1.3 维护项目的需求
7.5.1.4 维护项目的Bug、用例、测试单、测试报告
7.5.1.5 维护项目的文档
7.5.1.6 维护项目的版本、发布
7.5.2 看板项目
7.5.3. 瀑布项目特有功能(企业版与旗舰版)
7.5.3.1 维护项目的计划、阶段
7.5.3.2 项目设计、矩阵(矩阵为企业版)
7.5.3.3 项目评审、配置(旗舰版)
7.5.3.4 项目报告、挣值管理(旗舰版)
7.5.3.5 项目调研、估算(旗舰版)
7.5.3.6 项目问题、风险、机会(旗舰版)
7.5.3.7 项目过程、度量、QA(旗舰版)
7.5.3.8 项目培训、会议(旗舰版)
7.5.4 融合敏捷项目
7.5.5 融合瀑布项目
7.6. 执行
7.6.1 参加产品计划会议,分解任务
7.6.2 领取任务,并每天更新任务
7.6.3 创建版本,提交测试
7.6.4 确认Bug,解决Bug
7.6.5 执行的综合、需求、Bug、任务看板
7.7. 测试
7.7.1 撰写用例
7.7.2 执行用例
7.7.3 提交Bug
7.7.4 验证和关闭BUG
7.7.5 用例场景
7.8. 自动化测试
7.8.1 方案介绍
7.8.2 管理环境
7.8.3 配置环境
7.8.4 执行测试
7.9 DevOps(新平台版)
7.10. DevOps(旧版)
7.10.1. DevOps 功能
7.10.1.1 Git/SVN版本库管理和查看代码
7.10.1.2. 集成GitLab
7.10.1.2.1 绑定用户,关联issue,进行构建
7.10.1.2.2 合并请求
7.10.1.2.3 禅道中GitLab的权限
7.10.1.3 集成Jenkins,进行构建
7.10.1.4 集成SonarQube
7.11. 看板
7.11.1 通用看板功能
7.12. 资产库(旗舰版)
7.12.1 资产库管理(旗舰版)
7.13. 文档
7.13.1 文档管理
7.13.2 仪表盘
7.13.3 我的空间
7.13.4 产品空间
7.13.5 项目空间
7.13.6 接口空间
7.13.7 团队空间
7.13.8 文档详情
7.14. BI
7.14.1 维度(企业版8.4+)
7.14.2 大屏(企业版8.4+)
7.14.3. 大屏设计器
7.14.3.1 大屏设计器界面布局
7.14.3.2 大屏设计器引用图表
7.14.3.3 大屏设计器引用透视表
7.14.4 透视表(企业版8.4+)
7.14.5 图表(企业版8.4+)
7.14.6 数据表(企业版8.4+)
7.14.7. 度量项
7.14.7.1 查看度量项
7.14.7.2 度量项编码开发操作手册
7.14.8 统计(旧版)
7.14.9 报表导出(旧版)
7.14.10 自定义报表(旧版)
7.14.11 可视化(旧版)
7.15. AI
7.15.1 AI小程序简介
7.15.2 创建与设计AI小程序(企业版)
7.15.3 调试AI小程序(企业版)
7.15.4 发布与禁用小程序
7.15.5 前台小程序的应用
7.15.6 AI小程序的导入导出
7.15.7 管理AI小程序权限
7.16. 组织
7.16.1 团队成员和工作信息
7.16.2 人力资源日历(需安装插件)
7.16.3 组织动态
7.16.4 公司信息
7.17. 办公(企业版)
7.17.1 考勤
7.17.2 请假
7.17.3 补班
7.17.4 加班
7.17.5 调休
7.17.6 审批
7.18. 反馈(企业版)
7.18.1 反馈(企业版)
7.18.2 工单(企业版)
7.19. 学堂(企业版)
7.19.1 学堂的课程和后台(企业版)
7.19.2 实践库(企业版)
7.20. 工作流(企业版)
7.20.1 内置工作流(企业版)
7.21. 后台设置
7.21.1 首页
7.21.2. 系统设置
7.21.2.1 模式、备份、回收站
7.21.2.2 聊天
7.21.2.3 授权、安全、定时、时区、重建索引、表引擎
7.21.2.4 LDAP(企业版)
7.21.3 功能开关(超级管理员)
7.21.4. 人员管理
7.21.4.1 维护组织部门
7.21.4.2 维护用户
7.21.4.3 维护权限
7.21.5 模型配置
7.21.6. 功能配置
7.21.6.1 地盘、产品、执行、测试、看板、文档、反馈
7.21.6.2 审批、度量、用户、会议室
7.21.6.3 审批流程(旗舰版)
7.21.7 文档模板(旗舰版)
7.21.8. 通知设置
7.21.8.1 邮件
7.21.8.2 webhook
7.21.8.3 短信
7.21.8.4 浏览器
7.21.8.5 设置
7.21.9 插件管理
7.21.10 二次开发
7.21.11 数据导入(管理员)
7.21.12. 权限维护和控制
7.21.12.1 项目集的权限维护和访问控制
7.21.12.2 产品的权限维护和访问控制
7.21.12.3 项目的权限维护和访问控制
7.21.12.4 执行的权限维护和访问控制
7.21.12.5 项目和执行的访问控制和数据关系
7.21.13. AI配置
7.21.13.1 语言模型
7.21.13.2 AI提词
7.21.14. DevOps设置
7.21.14.1. 资源
7.21.14.1.1 主机
7.21.14.1.2 服务(企业版)
7.21.14.1.3 域名(企业版)
7.21.14.1.4 其他配置
7.21.14.2 指令
7.22. 客户端增强版会议
7.22.1. 音视频会议配置
7.22.1.1 安装音视频服务端
7.22.1.2 安装SRS音视频服务端
7.22.1.3 开启和配置音视频功能
7.22.2. 发起会议
7.22.2.1 一对一会话中发起音视频会议
7.22.2.2  群组会话中发起音视频会议
7.22.2.3 独立发起音视频会议入口
7.22.3. 加入会议
7.22.3.1 分享音视频会议到会话
7.22.3.2 通过会议的ID加入会议
7.22.4. 预约会议
7.22.4.1 预约会议
7.22.5. 会议应用
7.22.5.1 音视频会议应用
8. 其他相关
8.1. 其他
8.1.1 禅道所使用到的第三方代码
8.1.2 禅道FAQ
8.1.3 如何帮助禅道项目
8.1.4 禅道商业服务
8.1.5 禅道项目的贡献者
8.1.6 历史修改记录

Docker和Kubernetes方式部署禅道

2023-09-19 16:41:07
分享链接
摘要:基于容器化部署安装禅道指南

Docker及Helm部署安装

一、支持的版本(Tag)

当前版本镜像支持 x86_64(amd64)arm64 架构

1.1 镜像地址

  • 开源版

    • latest, 18.7(具体版本可以参考官网版本)
  • 企业版

    • biz8.7
    • biz8.7.k8s
  • 旗舰版

    • max4.7
    • max4.7.k8s
  • IPD版

    • ipd1.0.2
    • Ipd1.0.2.k8s

 

  • 时间戳版本,这个版本会随着每次镜像更新会自动生成,如有固定版本需求可以考虑时间戳版本如 18.7 有多个版本18.7-2023091818.7-20230916 ,在0916时,18.7最新版本就等于18.7-20230916, 在0918时18.7版本最新版本等于18.7-20230918

二、获取镜像

推荐从国内镜像仓库拉取我们构建好的Docker镜像

docker pull hub.zentao.net/app/zentao:[TAG]

如需使用指定的版本,可以拉取一个包含版本标签的镜像,在Docker Hub仓库中查看 可用版本列表

docker pull hub.zentao.net/app/zentao:[TAG] 

三、运行镜像

禅道容器镜像做了特殊处理,将所有需要持久化的数据都保存到了 /data 目录,因此,运行禅道容器镜像,您只需要将持久化目录挂载到容器的 /data 目录即可

如果挂载的目录为空,首次启动会自动初始化相关文件

后续默认使用最新开源版镜像为例

3.1 使用内置数据库

通过设置 MYSQL_INTERNAL=true 会启动内置的MySQL服务, 默认用户名为 root,密码是 123456

docker run -d -v <你的宿主机目录>/data:/data -p 80:80 -e MYSQL_INTERNAL=true hub.zentao.net/app/zentao 

3.2 使用外部数据库

docker run -it \
    -v $PWD/data:/data \
    -p 80:80 \
    -e MYSQL_INTERNAL=false \
    -e ZT_MYSQL_HOST=<你的MySQL服务地址> \
    -e ZT_MYSQL_PORT=<你的MySQL服务端口> \
    -e ZT_MYSQL_USER=<你的MySQL服务用户名> \
    -e ZT_MYSQL_PASSWORD=<你的MySQL服务密码> \
    -e ZT_MYSQL_DB=<禅道数据库名> \
    hub.zentao.net/app/zentao 

3.3 使用compose运行

示例如下:

# docker-compose.yaml
version: '2'
services:
# db service for zentao
  zentao-db:
    image: bitnami/mariadb
    container_name: zentao-db
    ports:
      - '3306:3306'
    volumes:
      - /data/zentao/db:/bitnami/mariadb
    environment:
      - MARIADB_ROOT_PASSWORD=pass4Zentao
      - MARIADB_DATABASE=zentao
    networks:
      - zentao-net
# zentao service
  zentao:
    image: hub.zentao.net/app/zentao
    container_name: zentao
    ports:
      - '80:80'
    volumes:
      - /data/zentao/file:/data
    depends_on:
      - zentao-db
    environment:
      - ZT_MYSQL_HOST=zentao-db
      - ZT_MYSQL_PORT=3306
      - ZT_MYSQL_USER=root
      - ZT_MYSQL_PASSWORD=pass4Zentao
      - ZT_MYSQL_DB=zentao
      - PHP_MAX_EXECUTION_TIME=120
      - PHP_MEMORY_LIMIT=512M
      - PHP_POST_MAX_SIZE=128M
      - PHP_UPLOAD_MAX_FILESIZE=128M
      - LDAP_ENABLED=false
      - SMTP_ENABLED=false
      - APP_DEFAULT_PORT=80
      - APP_DOMAIN=zentao.demo.com
      - PROTOCOL_TYPE=http
      - IS_CONTAINER=true
      - LINK_GIT=false
      - LINK_CI=false
    networks:
      - zentao-net
networks:
  zentao-net:
    driver: bridge 

将上面文件保存为 docker-compose.yml

# 执行
docker-compose up -d
# 新版本docker插件方式
docker compose up -d 

四、环境变量

变量名 默认值 说明
DEBUG false 是否打开调试信息,默认关闭
PHP_SESSION_TYPE files php session 类型,files | redis
PHP_SESSION_PATH /data/php/session php session 存储路径
PHP_MAX_EXECUTION_TIME 120 最大执行时间,单位秒,有助于防止有问题程序占尽服务器资源。默认120
PHP_MEMORY_LIMIT 256M 单个php进程允许分配的最大内存
PHP_POST_MAX_SIZE 128M 允许最大Post数据大小
PHP_UPLOAD_MAX_FILESIZE 128M 单个文件上传的最大值
MYSQL_INTERNAL false 使用内部的MySQL,默认关闭
ZT_MYSQL_HOST 127.0.0.1 MySQL 主机地址
ZT_MYSQL_PORT 3306 MySQL 端口
ZT_MYSQL_DB zentao zentao数据库名称
ZT_MYSQL_USER root MySQL用户名
ZT_MYSQL_PASSWORD pass4zenTao MySQL密码
LDAP_ENABLED false 是否启用LDAP
LDAP_HOST 127.0.0.1 LDAP服务主机地址
LDAP_PORT 389 LDAP服务端口
LDAP_BASEDN dc=quickon,dc=org LDAP BaseDN
LDAP_ADMINUSER cn=admin,dc=quickon,dc=org LDAP 管理员
LDAP_BINDPASSWORD pass4zenTao LDAP Bind 密码
LDAP_USERKEY uid LDAP 用户名称的字段名
LDAP_EMAILKEY mail LDAP 用户邮箱的字段名
LDAP_GROUP 1 默认用户组(1: 管理员, 2: 研发, 3: 测试, 类比)
LDAP_REALNAME name LDAP 用户真实姓名的字段名
LDAP_REPEATPOLICY number LDAP 用户重名策略,number:数字后缀,dept:部门后缀
LDAP_AUTOCREATE 1 LDAP 用户自动创建,1:自动创建,0:不自动创建
SMTP_ENABLED false 启用SMTP
SMTP_FROMNAME ZenTao $VERSION SMTP发件人显示名称
SMTP_HOST 127.0.0.1 SMTP 服务主机地址
SMTP_PORT 25 SMTP 服务端口号
SMTP_USER zentao@easycorp.cn SMTP发件人邮箱地址
SMTP_PASS pass4zenTao SMTP发件人邮箱密码
LINK_GIT false DevOps模块,是否链接Git服务
GIT_TYPE gitea 连接的git服务名称,目前支持 gitea/gogs/gitlab
GIT_INSTANCE_NAME gitea Git 服务名称
GIT_USERNAME root Git 管理员账号名称,用于生成token
GIT_PASSWORD pass4QuickOn Git 管理员密码,用于生成token
GIT_PROTOCOL https Git 服务协议类型,http或https(废弃)
GIT_DOMAIN https://git.haogs.cn Git 服务域名(完整域名包含协议头)
GIT_TOKEN - Git Token优先级高于用户名, 默认为空
LINK_CI false DevOps模块,是否链接CI服务
CI_TYPE jenkins 连接的ci服务名称,目前支持 jenkins
CI_USERNAME root CI 管理员账号名称,用于生成token
CI_PASSWORD pass4QuickOn CI 管理员密码,用于生成token
CI_PROTOCOL https CI 协议类型,http或https(废弃)
CI_URL https://jenkins.haogs.cn CI 服务域名(完整域名包含协议头)
CI_TOKEN - CI Token优先级高于用户名, 默认为空
LINK_SCAN false DevOps模块,是否链接扫描服务
SCAN_TYPE sonarqube 连接的扫描服务名称,目前支持 sonarqube
SCAN_USERNAME admin SCAN 管理员账号名称,用于生成token
SCAN_PASSWORD pass4QuickOn SCAN 管理员密码,用于生成token
SCAN_PROTOCOL https SCAN 协议类型,http或https(废弃)
SCAN_URL https://sonarqube.haogs.cn SCAN 服务域名(完整域名包含协议头)
IS_CONTAINER true 是否在容器内运行,zentao更新时使用

4.1 Session配置

如果使用redis作为session存储,session path配置值PHP_SESSION_PATH

无密码: tcp://127.0.0.1:6379

有密码: tcp://127.0.0.1:6379?auth=password

有用户密码: tcp://127.0.0.1:6379?auth=user:password

# 运行redis
docker run -d --rm --name redis redis:3.2.12-alpine3.8
# 运行mysql
docker run -d --rm --name mysql -e MYSQL_ROOT_PASSWORD=pass4you mysql:5.7.38-debian
# 运行禅道
docker run -d --rm --name zentao \
--link mysql \
--link redis \
-e ZT_MYSQL_HOST=mysql \
-e ZT_MYSQL_PORT=3306 \
-e ZT_MYSQL_USER=root \
-e ZT_MYSQL_PASSWORD=pass4you \
-e ZT_MYSQL_DB=zentao \
-e PHP_SESSION_TYPE=redis \
-e PHP_SESSION_PATH=tcp://redis:6379 \
-v /data/zentao:/data \
-p 8088:80 \
hub.zentao.net/app/zentao:latest 

4.2 调整最大上传文件的限制

通过设置 PHP_POST_MAX_SIZEPHP_UPLOAD_MAX_FILESIZE 这两个环境变量的值来调整最大上传文件的限制,另外,如果考虑到用户网速的因素,建议把PHP_MAX_EXECUTION_TIME 也加大一些,这样可以保证用户的文件可以上传完成

# 运行mysql
docker run -d --rm --name mysql -e MYSQL_ROOT_PASSWORD=pass4you mysql:5.7.38-debian
# 运行禅道
docker run -d --rm --name zentao \
--link mysql \
--link redis \
-e ZT_MYSQL_HOST=mysql \
-e ZT_MYSQL_PORT=3306 \
-e ZT_MYSQL_USER=root \
-e ZT_MYSQL_PASSWORD=pass4you \
-e ZT_MYSQL_DB=zentao \
-e PHP_MAX_EXECUTION_TIME=300 \
-e PHP_POST_MAX_SIZE=512M \
-e PHP_UPLOAD_MAX_FILESIZE=512M \
-v /data/zentao:/data \
-p 8088:80 \
hub.zentao.net/app/zentao:latest 

五、Kubernetes通过helm命令安装开源版示例

helm repo add zentao https://hub.qucheng.com/chartrepo/stable
helm repo update
helm search repo zentao/zentao
helm upgrade -i zentao-open zentao/zentao --set ingress.enabled=true --set ingress.host=zentao.example.local 

5.1 高级自定义配置

# 下载zentao charts
helm pull zentao/zentao --untar
# 自定义配置 zentao/values.yaml, 示例
helm upgrade -i zentao-open zentao/zentao -f custom.yaml 

六、版本升级

目前容器镜像已做特殊处理,同一发行版可以直接修改镜像版本号直接升级

七、其他

7.1 绑定IP和MAC地址

# 创建docker网络, ip子网地址示例172.172.172.0/24,网络驱动名示例zentao-net
docker network create --subnet=[ip范围] [网络驱动名] 
# 启动容器指定
docker run \
--name [容器名] \
-p [主机端口]:80 \
--network=[网络驱动名] \
--ip [容器IP] \
--mac-address [mac地址] \
-v [主机禅道目录]:/data \
-e MYSQL_INTERNAL=true \
-d hub.zentao.net/app/zentao:[镜像标签] 

7.2 附录

Docker方式部署禅道

easysoft/zentao镜像

34515 ysicing