docker安装禅道-升级禅道 分享链接

作者:柳婷婷 最后编辑:zhouyq 于 2023-11-23 15:14:05 浏览量:25132
摘要:本页面主要介绍了禅道软件的Docker安装和升级步骤,首先获取禅道最新版本的镜像Tag;然后使用命令"docker ps","docker stop [容器名]" 进行查看和停止禅道容器;接着进行备份禅道数据;最后使用最新版的容器镜像启动禅道,浏览器打开禅道地址,按提示完成升级。

前提说明

  • 升级新版前,请详细阅读禅道升级日志,全面了解新版本特性,确定是否升级。
  • 升级前,请做好数据备份,并确定备份文件的有效性。
  • 请选择业务低峰时段进行升级,以免备份或升级过程影响正常访问。
  • 旧版docker镜像升级文档

一、获取最新版镜像

访问 禅道官网 查询所安装版本的最新版本编号,或访问 Docker Hub,查看最新版本的Tag

image-20230807171005563

latest 是开源版的最新版,或者制定具体的版本号,如 18.5

本文档以开源版为例进行说明,从18.4 升级到 18.5

# 拉取 18.5 的镜像
docker pull hub.zentao.net/app/zentao:18.5 

二、备份备份

2.1 禅道后台备份

登录禅道 --> 左侧菜单项【后台】--> 设置模块的【系统设置】项 --> 顶部【备份】菜单

image-20230807172629807

这种方式适用于禅道数据量较小的情况,如果你的数据量超过10G,建议通过命令行进行备份。

2.2 命令行备份

# 先查看本机有足够的空间进行备份
df -h
# 查看运行的容器
docker ps
# 进入禅道容器
# docker exec -it <禅道容器名或禅道容器ID> bash
# 如:
docker exec -it zentao bash
# 进入bin目录
cd /apps/zentao/bin
# 生成备份脚本
bash init.sh
Please input your php path:(example: /usr/bin/php)
/opt/zbox/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
# 执行备份脚本
bash backup.sh
备份成功!
# 查看备份文件
ls -l /data/zentao/tmp/backup/
drwxr-xr-x 16 nobody nogroup    4096 Aug  7 17:26 202308071725591.code
drwxr-xr-x  2 nobody nogroup    4096 Aug  7 17:26 202308071725591.file
-rw-r--r--  1 nobody nogroup 6594686 Aug  7 17:26 202308071725591.sql.php
drwxr-xr-x 16 root   root       4096 Aug  7 17:30 202308071730380.code
drwxr-xr-x  2 root   root       4096 Aug  7 17:30 202308071730380.file
-rw-r--r--  1 root   root    6594796 Aug  7 17:30 202308071730380.sql.php
-rw-r--r--  1 nobody nogroup     325 Aug  7 17:30 summary 

说明:

  • PHP的二进制在 /opt/zbox/bin/目录下
  • 持久化目录是 /data

 三、重启容器

 3.1 停止旧版禅道容器

# 查看禅道容器名 或 ID
docker ps 
# 停止禅道容器,如:
docker stop zentao
# 清理停止的容器
docker rm zentao 

 3.2 启动新版镜像

docker run -d \
--name zentao \
-v /data/zentao:/data \
-p 8080:80 \
-p 13306:3306 \
-e MYSQL_INTERNAL=true \
hub.zentao.net/app/zentao:18.5 

3.3 查看启动日志

docker logs -f zentao
 17:21:38.24
 17:21:38.25 Welcome to the Easysoft ZenTao 18.5 container
 17:21:38.25 Subscribe to project updates by watching https://www.zentao.net
 17:21:38.25 Submit issues and feature requests at https://www.zentao.net/ask.html
 17:21:38.25
 17:21:38.26 INFO  ==> Prepare persistence directories.
 17:21:38.63 INFO  ==> Render php.ini with environment variables.
 17:21:38.63 INFO  ==> render template php.ini for amd64
 17:21:38.65 INFO  ==> Render apache sites config with envionment variables.
 17:21:38.67 INFO  ==> Copy mysql data to /data/mysql/data
 17:21:38.68 INFO  ==> Check whether the MySQL is available.
 17:21:38.68 WARN  ==> Waiting MySQL 1 seconds
 17:21:38.75 INFO  ==> Render mysql config with envionment variables.
 17:21:39.69 INFO  ==> MySQL is ready.
 17:21:39.69 INFO  ==> Zentao is ready to use. 

四、其他

4.1 通过脚本控制禅道容器

禅道容器运行命令的参数比较多,建议写个bash脚本,控制禅道容器的关闭与启动,如下示例

zentao_ctl.sh

#!/bin/bash
action=${1:?Usage: $0 <start|stop>}
action=${action,,}
Tag="18.5"
case $action in
"start")
  docker run -d \
  --name zentao \
  -v /data/zentao:/data \
  -p 8080:80 \
  -p 13306:3306 \
  -e MYSQL_INTERNAL=true \
  hub.zentao.net/app/zentao:${Tag:-latest}
  ;;
"stop")
  docker stop zentao \
  && docker rm zentao
  ;;
*)
  echo "Usage: $0 <start|stop>"
  ;;
esac 

4.2 通过Docker compose维护禅道容器

Docker 从20版本开始支持插件机制,建议安装compose插件,Windows系统需要独立下载docker-compose命令

创建 docker-compose.yml文件:

version: '2'
networks:
  zentao-net:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.16.8.0/24
          gateway: 172.16.8.254
services:
# zentao service
  zentao:
    image: hub.zentao.net/app/zentao:18.5
    container_name: zentao
    ports:
      - '8080:80'
    volumes:
      - /data/zentao:/data
    environment:
      - MYSQL_INTERNAL=true
      - PHP_MAX_EXECUTION_TIME=120
      - PHP_MEMORY_LIMIT=512M
      - PHP_POST_MAX_SIZE=128M
      - PHP_UPLOAD_MAX_FILESIZE=128M
    mac_address: 02:42:ac:11:00:ff
    networks:
      zentao-net:
        ipv4_address: 172.16.8.8 

参数说明:

  • 文件中定义了名为zentao-net,类型为 bridge的网络
  • zentao-net 的网段是 172.16.8.0/24
  • zentao-net 的网关是 172.16.8.254
  • 禅道服务的mac地址通过 mac_address关键词定义,值是:02:42:ac:11:00:ff
  • 禅道服务的ip地址通过 ipv4_address关键词定义,值是:172.16.8.8

启动禅道容器,查看日志,停止容器:

docker compose  up -d
[+] Running 1/1
 ✔ Container zentao  Started
 
# 查看启动日志
docker compose logs -f 
# 停止容器
docker compose stop
[+] Stopping 1/1
 ✔ Container zentao  Stopped 

更新版本:

将docker-compose.yml 中的镜像地址替换为最新版,如下:

--     image: hub.zentao.net/app/zentao:18.5
++     image: hub.zentao.net/app/zentao:18.6 

重新加载配置,更新镜像:

docker compose  up -d
[+] Running 14/14
 ✔ zentao 13 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]
   ✔ 1d5252f66ea9 Already exists		0.0s
   ✔ 782417f6df71 Already exists		0.0s
   ✔ 5b24a3ecdd38 Pull complete			3.3s
   ✔ b78262dd9aca Pull complete			7.2s
   ✔ ac083810dfa8 Pull complete			8.0s
   ✔ cfac14e059b5 Pull complete			8.0s
   ✔ 45d39e440dfe Pull complete			8.1s
   ✔ d7b70898d87f Pull complete			8.2s
   ✔ 412f25c9ec1a Pull complete			8.3s
   ✔ e76e85641c3d Pull complete			21.4s
   ✔ 66b031dbbc00 Pull complete			21.4s
   ✔ e30445746653 Pull complete			21.4s
   ✔ e10132603f8a Pull complete			25.6s
[+] Running 1/1
 ✔ Container zentao  Started