返回介绍

1. 禅道介绍

2. 安装禅道

3. 升级禅道

4. 维护配置

5. 快速入门

6. 按照角色使用

7. 功能介绍

8. 其他相关

其他内容

Docker和Kubernetes方式部署禅道

发布于 2024-08-03 20:26:11 字数 12026 浏览 0 评论 0 收藏 0

Docker及Helm部署安装

一、支持的版本(Tag)

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

1.1 镜像地址

  • 开源版

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

    • biz8.12
    • biz8.12.k8s
  • 旗舰版

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

    • ipd1.4
    • Ipd1.4.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: mariadb:10.6
    container_name: zentao-db
    ports:
      - '3306:3306'
    volumes:
      - /data/zentao/db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=pass4Zentao
      - MYSQL_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 

四、环境变量

变量名默认值说明
DEBUGfalse是否打开调试信息,默认关闭
PHP_SESSION_TYPEfilesphp session 类型,files | redis
PHP_SESSION_PATH/data/php/sessionphp session 存储路径
PHP_MAX_EXECUTION_TIME120最大执行时间,单位秒,有助于防止有问题程序占尽服务器资源。默认120
PHP_MEMORY_LIMIT256M单个php进程允许分配的最大内存
PHP_POST_MAX_SIZE128M允许最大Post数据大小
PHP_UPLOAD_MAX_FILESIZE128M单个文件上传的最大值
MYSQL_INTERNALfalse使用内部的MySQL,默认关闭
ZT_MYSQL_HOST127.0.0.1MySQL 主机地址
ZT_MYSQL_PORT3306MySQL 端口
ZT_MYSQL_DBzentaozentao数据库名称
ZT_MYSQL_USERrootMySQL用户名
ZT_MYSQL_PASSWORDpass4zenTaoMySQL密码
LDAP_ENABLEDfalse是否启用LDAP
LDAP_HOST127.0.0.1LDAP服务主机地址
LDAP_PORT389LDAP服务端口
LDAP_BASEDNdc=quickon,dc=orgLDAP BaseDN
LDAP_ADMINUSERcn=admin,dc=quickon,dc=orgLDAP 管理员
LDAP_BINDPASSWORDpass4zenTaoLDAP Bind 密码
LDAP_USERKEYuidLDAP 用户名称的字段名
LDAP_EMAILKEYmailLDAP 用户邮箱的字段名
LDAP_GROUP1默认用户组(1: 管理员, 2: 研发, 3: 测试, 类比)
LDAP_REALNAMEnameLDAP 用户真实姓名的字段名
LDAP_REPEATPOLICYnumberLDAP 用户重名策略,number:数字后缀,dept:部门后缀
LDAP_AUTOCREATE1LDAP 用户自动创建,1:自动创建,0:不自动创建
SMTP_ENABLEDfalse启用SMTP
SMTP_FROMNAMEZenTao $VERSIONSMTP发件人显示名称
SMTP_HOST127.0.0.1SMTP 服务主机地址
SMTP_PORT25SMTP 服务端口号
SMTP_USERzentao@easycorp.cnSMTP发件人邮箱地址
SMTP_PASSpass4zenTaoSMTP发件人邮箱密码
LINK_GITfalseDevOps模块,是否链接Git服务
GIT_TYPEgitea连接的git服务名称,目前支持 gitea/gogs/gitlab
GIT_INSTANCE_NAMEgiteaGit 服务名称
GIT_USERNAMErootGit 管理员账号名称,用于生成token
GIT_PASSWORDpass4QuickOnGit 管理员密码,用于生成token
GIT_PROTOCOLhttpsGit 服务协议类型,http或https(废弃)
GIT_DOMAINhttps://git.haogs.cnGit 服务域名(完整域名包含协议头)
GIT_TOKEN-Git Token优先级高于用户名, 默认为空
LINK_CIfalseDevOps模块,是否链接CI服务
CI_TYPEjenkins连接的ci服务名称,目前支持 jenkins
CI_USERNAMErootCI 管理员账号名称,用于生成token
CI_PASSWORDpass4QuickOnCI 管理员密码,用于生成token
CI_PROTOCOLhttpsCI 协议类型,http或https(废弃)
CI_URLhttps://jenkins.haogs.cnCI 服务域名(完整域名包含协议头)
CI_TOKEN-CI Token优先级高于用户名, 默认为空
LINK_SCANfalseDevOps模块,是否链接扫描服务
SCAN_TYPEsonarqube连接的扫描服务名称,目前支持 sonarqube
SCAN_USERNAMEadminSCAN 管理员账号名称,用于生成token
SCAN_PASSWORDpass4QuickOnSCAN 管理员密码,用于生成token
SCAN_PROTOCOLhttpsSCAN 协议类型,http或https(废弃)
SCAN_URLhttps://sonarqube.haogs.cnSCAN 服务域名(完整域名包含协议头)
IS_CONTAINERtrue是否在容器内运行,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 -e MYSQL_DATABASE=zentao mariadb:10.6

# 运行禅道
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 -e MYSQL_DATABASE=zentao mariadb:10.6

# 运行禅道
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为custom.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镜像

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文