Docker部署禅道zentao

  • 一、Docker部署禅道zentao(官方版)
  • 二、Docker部署禅道zentao(简易版)
  • 三、Docker部署禅道zentao(懒人版)


一、Docker部署禅道zentao(官方版)

一、环境准备
运行环境需成功部署Docker服务,推荐使用Docker 18版本以上,对主机环境没有要求。
可通过命令查看Docker版本。

[root@ZhongHao ~]#  docker -v

dockercompose 启动禅道 docker安装禅道_docker


二、下载禅道镜像

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

1、在线下载
禅道镜像已放于Docker Hub上,地址为: https://hub.docker.com/r/easysoft/zentao/tags
可根据所需版本拉取对应版本的镜像,默认latest为禅道开源最新版本。

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

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

sudo docker pull easysoft/zentao:12.3.3

dockercompose 启动禅道 docker安装禅道_Docker_02


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

版本

标签

开源版

以数字开头,如:12.3.3

专业版

以pro开头,如:pro8.8.3

企业版

以biz开头,如:biz3.7.2

2、离线导入
禅道版本对应的镜像归档文件如下表所示:

版本

镜像名字

镜像归档文件下载路径

开源版12.3.3

easysoft/zentao:12.3.3

/dl/docker/zentao_12.3.3.tar.gz

专业版8.8.3

easysoft/zentao: pro8.8.3

/dl/docker/zentao_pro8.8.3.tar.gz

企业版3.7.2

easysoft/zentao: biz3.7.2

/dl/docker/zentao_biz3.7.2.tar.gz

备:归档文件的命名格式为产品名+下划线+版本号+.tar.gz,以后发布产品也依照此格式。
导入镜像步骤如下:

  • 选择合适的版本进行下载,拷贝至主机下某位置;
  • 进入主机的镜像归档文件目录, 执行导入镜像命令。
sudo gunzip -c [镜像归档文件名] | docker load

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

sudo gunzip -c zentao_12.3.3.tar.gz | docker load

dockercompose 启动禅道 docker安装禅道_docker_03


三、启动禅道容器

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

2、启动禅道容器
命令格式如下:

sudo docker run --name [容器名] -p [主机端口]:80 --network=[网络驱动名] --ip [容器IP] --mac-address [mac地址] -v [主机禅道目录]:/www/zentaopms -v [主机mysql目录]:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=[数据库密码] -d easysoft/zentao:[镜像标签]

  • 容器名:启动的容器名字,可随意指定;
  • 主机端口:主机端口为web访问端口;
  • 网络驱动名:刚刚创建的网络驱动名;
  • 容器IP:在网络驱动范围内选择一个作为该容器的固定ip;
  • mac地址:指定固定的mac地址,建议范围为02:42:ac:11:00:00 到 02:42:ac:11:ff:ff;
  • 主机禅道目录:必须指定,方便禅道代码、附件等数据的持久化,非升级情况需指定空目录;
  • 主机mysql目录:必须指定,方便禅道数据持久化,非升级情况需指定空目录;
  • 数据库密码: 容器内置mysql用户名为root,默认密码123456,如果不修改可以不指定该变量,如果想更改密码可以设置 MYSQL_ROOT_PASSWORD变量来更改密码;
  • 镜像标签:禅道版本。

例如:在主机上创建空目录/www/zentaopms和/www/mysqldata,执行如下命令
sudo docker run --name zentao -p 80:80 --network=zentaonet --ip 172.172.172.172 --mac-address 02:42:ac:11:00:00 -v /www/zentaopms:/www/zentaopms -v /www/mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d easysoft/zentao:12.3.3

备注:如果在单个主机上部署多个禅道系统,只需要指定不同的[容器名]、[主机端口]、[容器IP]、[mac地址]、[主机禅道目录]、[主机mysql目录]即可部署多个禅道系统,例如:
sudo docker run --name zentao2 -p 8080:80 --network=zentaonet --ip 172.172.172.173 --mac-address 02:42:ac:11:00:01 -v /www/zentaopms:/www/zentaopms -v /www/mysqldata2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d easysoft/zentao:12.3.3 3、查看容器是否启动成功
执行如下命令查看容器是否启动成功,如果没有则启动失败,去掉-d选项进行前台运行调试容器,如有任何问题请咨询禅道商务同事。

docker ps

dockercompose 启动禅道 docker安装禅道_docker_04

四、安装禅道

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

dockercompose 启动禅道 docker安装禅道_Docker_05

在这里插入图片描述

dockercompose 启动禅道 docker安装禅道_mysql_06


dockercompose 启动禅道 docker安装禅道_mysql_07

dockercompose 启动禅道 docker安装禅道_docker_08

dockercompose 启动禅道 docker安装禅道_Docker_09

dockercompose 启动禅道 docker安装禅道_mysql_10

dockercompose 启动禅道 docker安装禅道_Docker_11

五、升级禅道

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

命令格式如下:

docker stop [容器名]

例如:

docker stop zentao

2 .备份禅道数据
为安全起见,将上文所述的[主机禅道目录]和[主机mysql目录]进行备份,例如将/www/zentaopms和/www/mysqldata进行 拷贝至主机其他目录。
3.获取最新版源码包,开源版从禅道官网获取,其他版本可咨询禅道商务获取
4.解压缩后,覆盖 [主机禅道目录],例如解压缩后覆盖主机/www/zentaopms目录
5.启禅道容器

docker start [容器名]

例如:

docker start zentao

6.访问upgrade.php,选择对应的版本,按照提示进行即可
开源版、专业版、企业版的升级相似,具体可以参考开源版禅道的升级 http://www.zentao.net/help-read-78960.html。

六、安装svn、git客户端 (如果不使用svn、git集成的话,不用安装)

  1. 进入容器
docker exec -it [容器名] /bin/bash
2. 执行命令
apt-get install git -y
apt-get install subversion -y

七、FAQ
A:如果修改容器里的mysql等配置文件

Q:使用如下命令

docker exec -it [容器名] /bin/bash

比如进入禅道容器,修改my.cnf后保存,重启mysql服务

docker exec -it zentao /bin/bash
vi /etc/mysql/my.cnf

同理,修改apache、php.ini的配置也类似,以下列出容器内相关组件的路径。
容器内apache配置文件目录:/etc/apache2/
容器内禅道目录:/www/zentaopms
容器内mysql配置文件目录: /etc/mysql/
容器内php配置文件目录:/etc/php/7.0/apache2

A:为什么容器挂载出来的/www/zentaopms目录是空文件夹
Q:在禅道12.3.1、12.2.stable、biz3.7、pro8.8这四个镜像中,禅道的挂载目录为/app/zentaopms,需修改挂载目录
例如:在主机上创建空目录/app/zentaopms和/app/mysqldata,执行如下命令
sudo docker run --name zentao -p 80:80 --network=zentaonet --ip 172.172.172.172 --mac-address 02:42:ac:11:00:00 -v /app/zentaopms:/app/zentaopms -v /app/mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d easysoft/zentao:12.3.3

二、Docker部署禅道zentao(简易版)

一、查看服务器是否有禅道容器

docker ps -a # 查看到所有容器

二、从docker库下载禅道镜像
如果服务器上没有禅道容器或者禅道镜像,则从docker库中下载镜像

docker pull idoop/zentao

三、创建禅道挂载目录,运行镜像

mkdir -p /data/zbox && docker run -d -p 80:80 -p 3306:3306 \
        -e USER="root" -e PASSWD="password" \
        -e BIND_ADDRESS="false" \
        -e SMTP_HOST="163.177.90.125 smtp.exmail.qq.com" \
        -v /data/zbox/:/opt/zbox/ \
        --name zentao-server \
        idoop/zentao:latest
  • 关于端口映射:将宿主机的80端口和3306端口分别映射到了禅道容器的80端口和3306端口,也可以进行自主更改。
  • 关于挂载目录:将禅道容器的/opt/zbox/目录挂载到了宿主机的/data/zbox/下,实现目录同步。
  • 关于命名:将运行生成的禅道容器命名为zentao-server

四、登陆禅道
在浏览器输入:http://服务器ip:80 即可访问到禅道容器。如果和禅道容器的80端口映射的是宿主机的其他端口,而非80端口,则将浏览器地址栏的端口号改成相应的宿主机端口即可。

三、Docker部署禅道zentao(懒人版)

1.安装

# 拉取镜像(最新的镜像中已经包含了mysql服务,不用重新搭建,也可以启动后更改配置连入自己的数据库)
docker pull idoop/zentao
 
# 运行镜像
docker run -d -p 6062:80 -p 6063:3306 -e ADMINER_USER="root" -e ADMINER_PASSWD="password" -e BIND_ADDRESS="false" -v /data/zbox/:/opt/zbox/ --add-host smtp.exmail.qq.com:47.112.182.87 --name zentao-server idoop/zentao:latest
  • 启动完成后,使用IP+端口访问,默认用户名:admin,密码:123456;数据库用户:root,默认密码:123456

2.数据库

想改成自己的MySQL数据库,如下操作:
# 修改MySQL配置文件为自己的数据库连接即可
vi /data/zbox/app/zentao/config/my.php
 
# 复制文件(前面目录为禅道的基础数据,后面为你要使用的数据库目录)
cp  /data/zbox/data/mysql/zentao/ /var/lib/mysql/
 
# 赋予权限
 chown -R mysql:mysql /var/lib/mysql/zentao
 
注意:不同版本的禅道文件路径和文件名可能不一样,低版本的事my.cnf,查找即可

本文由网络收集整理,如有侵权,告知必删!