Docker方式部署禅道 分享链接

作者:贾冬冬 最后编辑:zhouyq 于 2023-08-25 12:48:14 浏览量:194661
摘要:本文主要介绍如何使用Docker方式部署、升级禅道系统。

一、环境准备

环境与配置 测试环境 推荐配置 备注
Docker 20版本 20版本以上  
操作系统 Linux或Windows Linux 镜像支持 x86_64 和 arm64 架构
CPU 1核心 2核心  
内存 1G 4G  
硬盘 10G 50G以上  

注意:

  • 生产环境可以按照禅道的用户数以及项目的规模增减配置。
  • 生产环境建议运行在Linux系统

查看Docker版本:

docker -v
Docker version 20.10.20, build 9fdeb9c 

查看CPU架构:

uname  -a
Linux hostname 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64 GNU/Linux 

二、下载禅道镜像

目前支持在线下载和离线导入两种部署禅道镜像的方式,可根据自己环境进行选择。

2.1 在线下载

禅道镜像已放于Docker Hub上,地址为:https://hub.docker.com/r/easysoft/zentao/tags

可根据所需版本拉取对应版本的镜像,默认latest为禅道开源最新版本。

sudo docker pull [镜像名]:[镜像标签] 

例如拉取禅道开源版18.5版本命令如下:

sudo docker pull hub.zentao.net/app/zentao:18.5 

注意:

  • 为了方便国内用户拉取镜像,每次发版会在docker官方镜像仓库和禅道镜像仓库都推送镜像。

禅道版本和镜像tag对应关系如下:

禅道版本 镜像标签
开源版 以数字开头,如:18.5
专业版 以biz开头,如:biz8.5
企业版 以max开头,如:max4.5
IPD版

以ipd开头,如:ipd1.0.1

2.2 离线导入

禅道版本对应的镜像归档文件如下表所示:

禅道版本 镜像名字 镜像归档文件下载路径
开源版18.5 hub.zentao.net/app/zentao:18.5 zentao_18.5.gz
企业版8.5 hub.zentao.net/app/zentao:biz8.5 zentao_biz8.5.gz
旗舰版4.5 hub.zentao.net/app/zentao:max4.5 zentao_max4.5.gz
IPD版1.0.1 hub.zentao.net/app/zentao:ipd1.0.1 zentao_ipd1.0.1.gz

注意:

  • 归档文件的命名格式为 【产品名+下划线+版本号.gz】,以后发布产品也依照此格式。

导入镜像步骤如下:

  • 下载禅道镜像归档压缩包到U盘,或者刻录成光盘
  • 将U盘或光盘的禅道镜像归档复制到离线主机的临时目录, 如/tmp
  • 解压并载入镜像:
# 命令实例
sudo gunzip -c [镜像归档文件名] | docker load
# 如:
sudo gunzip -c zentao_18.5.tar.gz | docker load
da07e39e2957: Loading layer [======================>]   85.5kB/85.5kB
feab8630a9c5: Loading layer [======================>]  11.73MB/11.73MB
d7508f92bff7: Loading layer [======================>]  86.37MB/86.37MB
5ca65d83e7b7: Loading layer [======================>]  80.38MB/80.38MB
ed0cfb41d961: Loading layer [======================>]  2.673MB/2.673MB
c00e8d737e49: Loading layer [======================>]   10.3MB/10.3MB
a186fa70a0c6: Loading layer [======================>]  7.121MB/7.121MB
95e38b2ff244: Loading layer [======================>]  7.473MB/7.473MB
f4afc75280d8: Loading layer [======================>]  191.7MB/191.7MB
60721d394939: Loading layer [======================>]   89.6kB/89.6kB
6db6be18e64c: Loading layer [======================>]  15.87kB/15.87kB
cf41eda4f35b: Loading layer [======================>]  191.7MB/191.7MB
Loaded image: hub.zentao.net/app/zentao:18.5 

三、启动禅道

3.1 创建docker网络驱动

sudo docker network create --subnet=[ip范围] [网络驱动名] 
  • ip范围:例如172.172.172.0/24的意思是,IP可以指定范围为172.172.172.1到172.172.172.254;
  • 网络驱动名:创建的网络驱动名,可随意指定;

例如:

sudo docker network create --subnet=172.172.172.0/24 zentaonet 

3.2 启动禅道容器

命令格式如下:

sudo docker run \
--name [容器名] \
-p [主机端口]:80 \
--network=[网络驱动名] \
--ip [容器IP] \
--mac-address [mac地址] \
-v [主机禅道目录]:/data \
-e MYSQL_INTERNAL=true \
-d hub.zentao.net/app/zentao:[镜像标签] 

参数说明:

  • 容器名:启动的容器名字,可随意指定;
  • 主机端口:主机端口为web访问端口;
  • 网络驱动名:上文创建的网络驱动名 zentaonet
  • 容器IP:在网络驱动范围内选择一个作为该容器的固定ip;
  • mac地址:指定固定的mac地址,建议范围为02:42:ac:11:00:00 到 02:42:ac:11:ff:ff;
  • 主机禅道目录:必须指定,方便附件等数据的持久化;
  • MYSQL_INTERNAL=true:启用容器内置MySQL,默认用户名为 root,密码是 123456
  • 镜像标签:禅道版本

例如:在主机上创建空目录 /data/zentao,执行如下命令

sudo docker run \
--name zentao \
-p 80:80 \
--network=zentaonet \
--ip 172.172.172.172 \
--mac-address 02:42:ac:11:00:00 \
-v /data/zentao:/data \
-e MYSQL_INTERNAL=true \
-d hub.zentao.net/app/zentao:18.5 

注意:

  • 如果需要远程连接数据库,可以增加一个端口映射 -p [主机端口]:3306
  • 如果在单个主机上部署多个禅道系统,只需要指定不同的 [容器名]、[主机端口]、[容器IP]、[mac地址]、[禅道目录]即可部署多个禅道系统,例如:
sudo docker run \
--name zentao2 \
-p 8080:80 \
-p 3306:3306 \
--network=zentaonet \
--ip 172.172.172.173 \
--mac-address 02:42:ac:11:00:01 \
-e MYSQL_INTERNAL=true \
-v /data/zentao2:/data \
-d hub.zentao.net/app/zentao:18.5 

3.3 查看容器是否启动成功

执行如下命令查看容器是否启动成功,如果没有则启动失败,去掉-d选项进行前台运行调试容器,如有任何问题请咨询禅道商务同事。

# 查看禅道容器
docker ps | grep zentao
# 查看禅道容器日志
docker logs -f zentao 

四、安装禅道

浏览器直接访问 http://宿主机ip:宿主机映射端口

五、升级禅道


 推荐用按照此文档升级:https://www.zentao.net/book/zentaopms/586.html

5.1 先停止禅道容器,为备份数据做准备

# 停止禅道容器
docker stop zentao 
# 删除容器
docker rm zentao 

5.2 备份禅道数据

为安全起见,将上文所述的 [主机禅道目录] 进行备份,例如将 /data/zentao 进行拷贝至主机其他目录。

cp -rp /data/zentao /data/zentao_bak_`date +%Y%m%d` 

5.3 拉取新版本禅道镜像

docker pull hub.zentao.net/app/zentao:[新版本]
# 如
docker pull hub.zentao.net/app/zentao:18.7 

5.4 启禅道容器

sudo docker run \
--name zentao \
-p 80:80 \
--network=zentaonet \
--ip 172.172.172.172 \
--mac-address 02:42:ac:11:00:00 \
-v /data/zentao:/data \
-e MYSQL_INTERNAL=true \
-d hub.zentao.net/app/zentao:18.7 

访问 http://你的ip:端口/ 按照提示完成升级

开源版、专业版、企业版的升级相似,具体可以参考开源版禅道的升级 http://www.zentao.net/help-read-78960.html

六、FAQ

A:如果我使用的是旧版的禅道镜像,如何升级到新版

请参考文档:旧版Docker镜像升级说明

A:如何修改容器里的MySQL配置

容器内置的MySQL数据及配置会保存到 /data/mysql 目录内,如果调整配置,可以直接在主机的目录下修改,完成后重启容器

A:如何远程连接容器里的mysql

请参考:https://www.zentao.net/book/zentaopmshelp/276.html

1)、确认主机与容器中mysql有端口映射;
2)、确认远程登录用户权限,如使用root用户

rename user 'root'@'localhost' to 'root'@'%';