1. 禅道介绍
2. 安装禅道
- 2.1. 环境搭建
- 2.2. 安装禅道新版本
- 2.3. 安装12开源版
- 2.4. 安装12企业版
- 安装 PHP 的 LDAP 扩展
- 在线安装云禅道
- 安装 APCu 扩展
- 安装 DuckDB 引擎
3. 升级禅道
- 3.1. 升级12开源版
- 3.2. 升级12企业版
- 3.3. 升级禅道新版本
- 如何安装 ioncube 扩展
4. 维护配置
- 4.1. 维护禅道
- 4.2. 配置禅道
- 4.3. 性能优化
5. 快速入门
- 5.1. 12版本快速入门
- 5.2. 12版创建分组和用户
- 5.3. 12版本最简使用
- 5.4. 12版本基本使用
- 5.5. 12版本进阶使用
- 禅道使用流程图解
- 5.5.2. 个人管理
- 5.5.3. 产品经理篇
- 5.5.4. 项目经理篇
- 5.5.5. 开发团队篇
- 5.5.6. 测试团队篇
- 5.6. 12版本企业版使用
- 5.6.17. 办公管理
- 5.6.18. 工作流
- 视频及 PPT 资料
- 5.7. 新版本快速入门
6. 按照角色使用
7. 功能介绍
- 7.1. 新增概念
- 7.2. 地盘
- 7.3. 项目集
- 7.4. 产品
- 7.5. 项目
- 7.6. 执行
- 7.7. 测试
- 7.8. 自动化测试
- 7.9. DevOps(新平台版)
- 7.10. DevOps(旧版)
- 7.10.1. DevOps 功能
- 7.11. 看板
- 7.12. 资产库(旗舰版)
- 7.13. 文档
- 7.14. BI
- 7.15. AI
- 7.16. 组织
- 7.17. 办公(企业版)
- 7.18. 反馈(企业版)
- 7.19. 学堂(企业版)
- 7.20. 内置工作流(企业版)
- 7.21. 后台设置
- 7.22. 客户端增强版会议
- 7.22.1. 音视频会议配置
- 7.22.2. 发起会议
- 7.22.3. 加入会议
- 预约会议
- 音视频会议应用
8. 其他相关
其他内容
- 关于禅道 IPD 版
- 关于禅道 DevOps 平台版本
- SAFe 介绍
- 关于禅道企业创新能力解决方案
- 禅道企业决策分析解决方案介绍
- 配置使用与常见问题
- 关于 zentaoPHP 框架
- 禅道二次开发简介
- 关于禅道项目管理软件
- 关于禅道企业版
- 关于禅道旗舰版
- 选择适合您的安装方法
- 使用源码包安装(各系统通用)
- Windows 一键安装包(旧版)
- 安装 ioncube 扩展
- 一键安装包如何实现 mysql 异机连接
- 如何安装 ioncube 扩展
- 通过源代码方式升级(通用)
- windows 一键安装包的升级
- linux 一键安装包升级
- 通过源代码方式升级(通用)
- windows 一键安装包的升级
- linux 一键安装包升级
- 升级流程引导
- zentaoPHP 框架命令行机制
- 初始化管理脚本
- 集成版本库、集成 Jenkins,并进行构建
- 主持产品会议
- 禅道开源版使用帮助
- 维护权限
- ZAgent 的使用
- 分解任务
- Git/SVN 版本库管理和查看代码
- 管理应用
- 管理代码库
- 管理流水线
- 管理制品库
- 管理上线计划
- 禅道的目录结构
- 插件
- 在第三方应用中集成禅道
- 其他配置
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
旧版 Docker 镜像升级说明
一、为什么要升级?
- 优化更新流程,不需要下载安装包,直接拉取新版镜像即可
- 新版可以通过环境变量选择是否启用内置MySQL,方便对接外部MySQL
- 新版原生支持Kubernetes部署
- 旧版镜像2023年8月底停止更新
二、新旧版本对比
对比项 | 旧版 | 新版 | 说明 |
---|---|---|---|
镜像大小 | 342Mb | 204Mb | 压缩后镜像大小 |
针对容器优化 | 否 | 是 | 新版优化了持久化目录、配置与安装流程 |
渠成应用市场 | 否 | 是 | 通过渠成应用市场安装 |
集成MySQL | 是 | 是 | 新版可通过环境变量控制是否使用内置MySQL |
对接外部MySQL | 是,手动修改my.php | 是,通过环境变量 | |
持久化目录 | 禅道代码+MySQL数据 | 禅道配置+用户数据 或 MySQL数据 | 新版镜像只需要挂载容器内 /data 目录 |
禅道升级 | 下载源码包覆盖程序 | 拉取新版本镜像 | |
Dockerfile开源 | 否 | 是 | 新版Dockerfile源码 |
docker-compose编排 | 否 | 是 | |
Kubernetes运行 | 否 | 是 | |
高可用部署 | 否 | 是 | |
PHP配置修改 | 手动 | 环境变量 | 新版通过环境变量设置PHP参数 |
Session存储 | 文件 | 文件 或 Redis | 新版通过环境变量设置 |
PHP配置修改 | 手动 | 环境变量 | 新版通过环境变量设置PHP参数 |
配置SMTP | 手动 | 环境变量 | |
配置LDAP | 手动 | 环境变量 | 企业版、旗舰版支持 |
配置CI | 手动 | 环境变量 | |
配置Git服务 | 手动 | 环境变量 |
三、旧版升级流程
3.1 备份数据
- 命令行进入到旧版容器内执行
# 查找禅道容器ID,默认容器名为 zentao,请根据实际情况填写禅道容器名
cid=$(docker ps -q --filter name=zentao)
# 查看旧版禅道服务的持久化目录位置
docker inspect $cid | grep -B 1 "/www/zentaopms"
"/tmp/zentao-db:/var/lib/mysql",
"/tmp/zentao-files:/www/zentaopms"
--
"Source": "/tmp/zentao-files",
"Destination": "/www/zentaopms",
# 本示例的宿主机目录分配是:
# MySQL目录:/tmp/zentao-db
# 禅道目录:/tmp/zentao-files
# 进入到禅道容器内
docker exec -it $cid bash
# 查看当前运行的禅道版本
cat /www/zentaopms/VERSION
max4.1 # 记住这个版本号,升级新版镜像时要用到
# 通过命令行备份禅道数据
# 切换到禅道工作目录的bin目录
cd /www/zentaopms/bin
# 根据当前配置生成备份脚本
bash init.sh
Please input your php path:(example: /usr/bin/php)
/usr/bin/php
Please input zentao url:(example: http://localhost:88/zentao or http://localhost)
http://localhost
ztcli.sh ok
backup.sh ok
computeburn.sh ok
computetaskeffort.sh ok
dailyreminder.sh ok
checkdb.sh ok
syncsvn.sh ok
syncgit.sh ok
sendmail.sh ok
sendwebhook.sh ok
createcycle.sh ok
initqueue.sh ok
checkbuildstatus.sh ok
execcompile.sh ok
deletelog.sh ok
encrypt.sh ok
cron.sh ok
# 通过backup.sh脚本备份禅道
bash backup.sh
备份成功!
# 备份文件存在 /www/zentaopms/tmp/backup 目录,本示例文件如下:
ls -1 /www/zentaopms/tmp/backup
202303150937474.code # 代码备份
202303150937474.file # /www/zentaopms/www/data 目录备份
202303150937474.sql.php # 数据库备份
summary # 本次备份统计信息
3.2 启动新版禅道镜像
3.2.1 创建新版禅道数据目录
本示例使用 /data/zentao 作为新版禅道得持久化目录,要保证
/data
分区或/
分区有足够的剩余空间。
mkdir /data/zentao
3.2.2 下载镜像,启动服务
禅道镜像内包含MySQL服务,默认不启动,如果启动内置的MySQL服务,需要设置环境变量 MYSQL_INTERNAL=true
拉取镜像
docker pull hub.zentao.net/app/zentao:max4.5
启动禅道
docker run -d \
--name new-zentao \
-v /data/zentao:/data \
-p 8080:80 \
-p 13306:3306 \
-e MYSQL_INTERNAL=true \
hub.zentao.net/app/zentao:max4.5
注意:
- 启动命令设置了
MYSQL_INTERNAL=true
环境变量,会在容器内启动MySQL服务- 请根据实际情况设置容器名称,本示例使用
new-zentao
是为了与旧版的zentao
名称区分- 请根据实际情况设置端口映射,本示例将容器内的80端口映射为8080,3306映射为13306
查看启动日志
docker logs -f zentao
日志信息如下:
14:18:19.19
14:18:19.20 Welcome to the Easysoft ZenTao max4.5 container
14:18:19.20 Subscribe to project updates by watching https://www.zentao.net
14:18:19.20 Submit issues and feature requests at https://www.zentao.net/ask.html
14:18:19.20
14:18:19.21 INFO ==> Prepare persistence directories.
14:18:19.46 INFO ==> Render php.ini with environment variables.
14:18:19.46 INFO ==> render template php.ini for amd64
14:18:19.47 INFO ==> Render apache sites config with envionment variables.
14:18:19.49 INFO ==> Copy mysql data to /data/mysql/data
14:18:19.49 INFO ==> Check whether the MySQL is available.
14:18:19.50 WARN ==> Waiting MySQL 1 seconds
14:18:19.51 WARN ==> Please open the browser to complete the installation through the wizard.
14:18:19.52 INFO ==> Render mysql config with envionment variables.
230804 14:18:19 mysqld_safe Logging to '/data/mysql/logs/mysql_error.log'.
230804 14:18:19 mysqld_safe Starting mariadbd daemon with databases from /data/mysql/data
14:18:20.51 INFO ==> MySQL is ready.
14:18:20.51 WARN ==> Please open the browser to complete the installation through the wizard.
注意:
- 容器启动时会根据环境变量对PHP、Apache、MySQL等服务进行配置,支持的环境变量
- 容器启动时,会检查MySQL服务是否可以正常连接,默认情况下等待30秒,如果30秒内不能连接MySQL,容器会自动退出
- 首次启动容器时,最后会打印输出
Waiting for the installation wizard to complete.
看到这个消息,请打开浏览器,完成禅道安装向导。
3.3 导入备份的数据
在导入备份的数据之前,先要了解新版镜像的持久化目录对应关系:
禅道代码目录 | 容器持久化目录 | 说明 |
---|---|---|
/apps/zentao/www/data | /data/zentao/www/data | 禅道用户上传的文件目录 |
/apps/zentao/config/my.php | /data/zentao/config/my.php | 禅道主配置文件 |
/apps/zentao/config/ext | /data/zentao/config/ext | 存放禅道插件的目录 |
/apps/zentao/config/license | /data/zentao/config/license | 禅道授权目录 |
/apps/zentao/extension/custom | /data/zentao/extension/custom | 禅道自定义插件目录 |
/apps/zentao/module/extension/ext | /data/zentao/module/extension/ext | 禅道企业版/旗舰版插件目录 |
/apps/zentao/tmp/backup | /data/zentao/tmp/backup | 备份目录 |
/apps/zentao/tmp/log | /data/zentao/tmp/log | 日志目录 |
/apps/zentao/tmp/template | /data/zentao/tmp/template | 模板目录 |
注意:
- 为了实现以上目录的持久化存储,新版禅道镜像对需要做持久化的目录做了软连接处理,首次启动时会在
/data
创建目录,并软连接到容器内的禅道代码目录,详情参加:源码:持久化目录处理- 将旧版的备份恢复到新版的操作要尽量选用低峰,否则会造成数据不一致。
3.3.1 恢复文件
恢复文件时建议关闭新旧版的禅道服务,上文得到的旧版禅道目录是 /tmp/zentao-files
因此,需要将该目录下需要持久化的目录复制到新版镜像持久化目录即可,不需要将所有文件复制到新版持久化目录。
# 关闭旧版禅道服务
docker stop zentao
# 关闭新版禅道服务
docker stop new-zentao
# 将旧版需要持久化的目录复制到新版目录
# 此步骤在宿主机执行
# www/data -- 禅道用户上传的文件目录
cp -rp /tmp/zentao-files/www/data /data/zentao/www/
# config/my.php -- 禅道主配置文件
cp -rp /tmp/zentao-files/config/my.php /data/zentao/config/my.php
# config/ext -- 存放禅道插件的目录
cp -rp /tmp/zentao-files/config/ext /data/zentao/config/
# config/license -- 禅道授权目录
cp -rp /tmp/zentao-files/config/license /data/zentao/config/
# extension/custom -- 禅道自定义插件目录
cp -rp /tmp/zentao-files/extension/custom /data/zentao/extension/
# module/extension/ext -- 禅道企业版/旗舰版插件目录
[ -d /tmp/zentao-files/module/extension/ext ] && cp -rp /tmp/zentao-files/module/extension/ext /data/zentao/module/extension/
3.3.2 修改my.php配置
vi /data/zentao/config/my.php
<?php
$config->installed = true;
$config->debug = false;
$config->requestType = 'PATH_INFO';
$config->timezone = 'Asia/Shanghai';
$config->db->host = '127.0.0.1'; # 使用内部的MySQL
$config->db->port = '3306';
$config->db->name = 'zentao';
$config->db->user = 'root';
$config->db->encoding = 'UTF8';
$config->db->password = '123456'; # 默认密码
$config->db->prefix = 'zt_';
$config->webRoot = getWebRoot();
$config->default->lang = 'zh-cn';
注意:
- 如果你之前使用的就是内置MySQL,且没有修改过默认密码,
my.php
可以不用修改。- 如果你修改了默认的数据库密码,请将MySQL的密码修改为更新后的密码。
- 如果你使用的是外部的MySQL,
my.php
不需要修改。
3.3.3 恢复数据库
启动新版禅道镜像:
# 启动之前,先确认旧版禅道容器是否已经清理
docker rm zentao
# 启动新版禅道
docker run -d \
--name zentao \
-v /data/zentao:/data \
-p 8080:80 \
-p 13306:3306 \
-e MYSQL_INTERNAL=true \
hub.zentao.net/app/zentao:max4.5
# 查看服务状态
docker logs -f zentao
将 3.1 备份的数据库导入到新启动的MySQL:
# 删除备份文件的第一行 sed -i '1d' 202303150937474.sql.php # 将SQL中不符合时间规范的字段替换为 1970-01-01 sed -i 's/0000-00-00/1970-01-01/g' 202303150937474.sql.php # 修改文件名 mv 202303150937474.sql.php 202303150937474.sql # 导入数据,宿主机执行
mysql -uroot -h127.0.0.1 -P13306 -p zentao < 202303150937474.sql
# 导入数据完成后,手动重启zentao容器
docker restart zentao
四、新版禅道镜像的版本升级
从旧版镜像切换到新版镜像,或者直接使用新版镜像后,升级禅道只需要拉取最新的禅道镜像即可。
切记:升级前通过命令行或者禅道后台备份数据
本示例介绍如何从 禅道 旗舰版 4.5 升级到 4.6
# 拉取禅道旗舰版 4.6 的镜像
docker pull hub.zentao.net/app/zentao:max4.6
4.2 关闭旧版容器,启动新版镜像
# 关闭旧版容器
docker stop zentao
# 启动新版镜像
docker run -d \
--name zentao \
-v /data/zentao:/data \
-p 8080:80 \
-p 13306:3306 \
-e MYSQL_INTERNAL=true \
hub.zentao.net/app/zentao:max4.6
五、其他
5.1 将Session存储到Redis
新版禅道镜像支持通过环境变量更改Session的存放类型,如下:
变量名 | 默认值 | 说明 |
---|---|---|
PHP_SESSION_TYPE | files | php session 类型,files 或 redis |
PHP_SESSION_PATH | /data/php/session | php session 存储路径 |
示例:
docker run -d \
--name zentao \
-v /data/zentao:/data \
-p 8080:80 \
-p 13306:3306 \
-e MYSQL_INTERNAL=true \
-e PHP_SESSION_TYPE=redis \
-e PHP_SESSION_PATH=tcp://192.168.1.88:6379 \
hub.zentao.net/app/zentao:max4.6
5.2 其他功能扩展
新版禅道镜像会针对禅道的功能增加不同的环境变量,通过环境变量开启和变更相关的功能与配置,更多详情参见:支持的环境变量
5.3 其他链接
六、历史记录
V1.0
- 首版
V2.0
- 内置MySQL,默认情况下不启动,可以通过设置
MYSQL_INTERNAL=true
启用内置MySQL。 - 降低部署成本,运行方式与旧版保持一致,高级用户可选择docker-compose的方式运行。
- 18.6 版本禅道镜像会同步更新国内镜像,以后会使用 hub.zentao.net 的域名,方便国内用户拉取镜像。
- 镜像的运行时(Apache、PHP、MySQL)会按照官方的稳定版一起发布,可及时修复环境安全漏洞。
- 支持amd64与arm64 架构,满足国产信创需求。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论