本教程基于 5分钟搞定!用Docker一键部署禅道项目管理系统,团队协作效率翻倍 所采用的禅道社区版 Docker Compose 部署方式,适用于将服务从旧服务器迁移到新服务器,确保数据完整、服务可恢复、操作可审计。
🧱 一、原始部署结构回顾
根据该文档,禅道部署结构如下:
- 使用
easysoft/zentao
官方镜像 - 宿主机挂载数据卷到容器
/opt/zbox/app/zentao/www/data
- 使用
docker-compose.yml
管理服务 - 数据库为内嵌 MySQL,无需额外容器
📦 二、旧服务器备份步骤
✅ 1. 停止服务(可选)
bash
docker compose down
或保持运行状态备份。
📁 2. 备份数据目录
bash
docker cp zentao:/opt/zbox/app/zentao/www/data /opt/migration-backup/data
🗃️ 3. 备份数据库(容器内执行)
bash
docker exec -it zentao /bin/bash
cd /opt/zbox/run/mysql/
./mysqldump -u root -p zentao > /home/zentao.sql
exit
docker cp zentao:/home/zentao.sql /opt/migration-backup/zentao.sql
默认密码为
123456
,可通过.env
或容器日志确认。
🚚 三、迁移到新服务器
🔐 1. 安装 Docker 和 Docker Compose
bash
curl -fsSL https://get.docker.com | bash
sudo apt install docker-compose -y
📤 2. 传输备份文件
bash
rsync -avz /opt/migration-backup/ user@new-server:/opt/migration-backup/
🧾 四、新服务器恢复服务
📂 1. 准备目录结构
bash
mkdir -p ~/zentao
cd ~/zentao
cp /opt/migration-backup/zentao.sql .
cp -r /opt/migration-backup/data ./data
🧱 2. Compose 文件参考博客
5分钟搞定!用Docker一键部署禅道项目管理系统,团队协作效率翻倍
可根据原文档调整镜像版本和端口映射。
🚀 3. 启动服务
bash
docker compose up -d
🧨 4. 导入数据库(容器内)
bash
docker cp zentao.sql zentao:/home/zentao.sql
docker exec -it zentao /bin/bash
cd /opt/zbox/run/mysql/
./mysql -u root -p zentao < /home/zentao.sql
🔍 五、验证与回滚机制
🧪 验证服务运行状态
bash
docker compose ps
docker logs zentao
访问 http://<new-server-ip>
检查页面是否正常。
🔁 回滚建议
保留原始 docker-compose.yml
和 zentao.sql
,如需回滚:
bash
docker compose down
docker compose -f docker-compose.backup.yml up -d
🧰 六、进阶建议
功能 | 建议做法 |
---|---|
数据备份 | 每日定时 mysqldump + rsync 到远程 |
容器健康检查 | 添加 healthcheck 保证启动顺序 |
权限管理 | 显式设置 UID:GID ,避免权限错误 |
自动化恢复 | 编写一键恢复脚本,包含日志和错误处理 |
审计记录 | 所有迁移操作记录到 /opt/migration-backup/logs/ |
📘 示例项目结构参考
~/zentao/
├── docker-compose.yml
├── zentao.sql
└── data/