docker版禅道16.4升级至18.6步骤

一、备份旧的禅道文件和数据库

  • 在禅道后台使用系统自带的备份功能

    手动进行备份,并记录其中的数据库备份文件的文件名,后续会用到

  • 停止16.4版容器并删除

    根据自身旧版16.4禅道的docker运行命令分析,确保旧版禅道数据都映射在了宿主机中,那么就可以直接删除旧版容器

  • 重命名映射到宿主机中的目录名

    (此步骤为避免新容器覆盖宿主机目录的保险操作,路径结合自身情况调整)

    mv /home/ubuntu/zentaopms /home/ubuntu/zentaopms_old
    mv /home/ubuntu/zentaomysql /home/ubuntu/zentaomysql_old

    左边路径为旧版禅道映射在宿主机中的目录,右边路径为重命名目录,根据自身情况进行修改


二、生成新的禅道

  • 生成新的容器

    sudo docker run \
        --restart=always \
        --name zentao  \ # 此处结合自身情况修改
        -p 33330:3306  \ # 此处结合自身情况修改
        -p 33331:80  \ # 此处结合自身情况修改
        --network=zentaonet  \ # 此处结合自身情况修改
        --ip 172.172.172.3 \ # 此处结合自身情况修改
        --mac-address 02:42:ac:11:00:03  \ # 此处结合自身情况修改
        -v /home/ubuntu/zentaopms:/data \ # 此处结合自身情况修改
        -e MYSQL_INTERNAL=true \ # 此处结合自身情况修改
        -e ZT_MYSQL_PASSWORD=123456 \ # 此处结合自身情况修改
        -d easysoft/zentao:18.6
  • 这里需要注意!!!

    禅道对新版docker容器中的目录进行了调整,新版的禅道在容器中只需向外映射一个目录即可,官方在新版容器内将php、mysql、zbox、用户数据等目录进行了分离和软链接,官方此目的是为了在以后的docker升级中简化升级步骤。

三、还原文件

  • 拷贝旧用户数据,宿主机中执行

    (该步骤为拷贝旧禅道中的用户数据目录,其具体目录内容见下面网址中"3.3 导入备份的数据"的描述,并根据自身情况进行拷贝 https://www.zentao.net/book/zentaopmshelp/42.html#7 )

  1. 拷贝用户上传件目录:(路径结合自身情况调整)

    mkdir /home/ubuntu/zentaopms/zentao/www/data/upload
    cp -rp /home/ubuntu/zentaopms_old/www/data/upload/1 /home/ubuntu/zentaopms/zentao/www/data/upload/1
  2. 拷贝配置文件:(路径结合自身情况调整)

    cp -rp /home/ubuntu/zentaopms_old/config/my.php /home/ubuntu/zentaopms/zentao/config/my.php
  • 将my.php中的mysql密码改为新版密码

    /home/ubuntu/zentaopms/zentao/config/my.php (路径结合自身情况调整)
  • 如果你还将旧版禅道源码进行过修改

    那么你需要将修改过的文件拷贝到映射目录中后,然后进入容器中将你拷贝的文件移动到禅道源码运行目录(容器中对应/apps/zentao/www路径),
    因为官方在新版禅道docker中没有将源码映射出来。

四、还原数据库

  • 处理备份的数据库脚本,从宿主机中执行

    将在旧版禅道后台中最后一次进行手动备份后的数据库文件进行处理

  1. 拷贝一份

    cd /home/ubuntu/zentaopms_old/tmp/backup
    (路径结合自身情况调整)
    cp -rp '202308270030115.sql.php' '202308270030115.sql_new.php'
    (文件名结合自身情况调整,在前面步骤中让你记录下来了的)
  2. 删除文件中的第一行 php信息

    sed -i '1d' '202308270030115.sql_new.php'
    (文件名结合自身情况调整,在前面步骤中让你记录下来了的)
  3. 替换不合法的时间

    sed -i 's/0000-00-00/1970-01-01/g' '202308270030115.sql_new.php'
    (文件名结合自身情况调整,在前面步骤中让你记录下来了的)
  4. 去掉.php后缀

    mv '202308270030115.sql_new.php' '202308270030115_new.sql'
    (文件名结合自身情况调整,在前面步骤中让你记录下来了的)
  • 将处理好的数据库脚本拷贝到新禅道映射到宿主机中的目录,在宿主机中执行

    cp -rp /home/ubuntu/zentaopms_old/tmp/backup/202308270030115_new.sql /home/ubuntu/zentaopms/zentao/202308270030115_new.sql
    (路径和文件名结合自身情况调整)
  • 从宿主机中进入容器

  • 还原数据库,从容器内执行

    cd /data/zentao
    mysql -uroot -h127.0.0.1 -P3306 -p123456 zentao < '202308270030115_new.sql'
    (文件名结合自身情况调整,在前面步骤中让你记录下来了的)

五、访问升级页面,按提示操作升级

  • /upgrade.php

六、问题排查

  • 如果发现web无法访问,请查看容器日志中输出的信息进行排查

    如果日志和下列问题有关,可参考对应的解决办法

其它、

标签: docker, 禅道

评论已关闭