当前位置: 首页 > news >正文

基于Docker-compose的禅道部署实践:自建MySQL与Redis集成及故障排查指南

基于Docker-compose的禅道部署实践:自建MySQL与Redis集成及故障排查指南

禅道镜像版本:easysoft/zentao:21.4

Redis版本:redis:6.2.0

Mysql版本:mysql:8.0.35

文章目录

  • **基于Docker-compose的禅道部署实践:自建MySQL与Redis集成及故障排查指南**
      • 一.环境准备
      • 二.编写部署文件
      • 三.网页初始化以及可能遇到的问题
      • 四.遇到的问题以及解决方法
        • 1.问题描述
        • 2.解决办法和问题原因

一.环境准备

#检查是否安装docker-compose
docker-compose --version

image-20250213164350948

#如果没安装则可以执行以下命令安装
wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64
chmod +x /usr/local/bin/docker-compose
#新建挂载目录
mkdir -p /home/zentao
cd /home/zentao

二.编写部署文件

官方的Yml文件地址如下:go-zentao/hack/docker-compose-cache.yml at master · easysoft/go-zentao

因为此次部署是在已有Mysql和Redis的情况下搭建,所以修改为以下内容:

services:
# zentao service
  zentao:
    image: easysoft/zentao:21.4
    container_name: zentao
    pull_policy: always
    restart: always
    ports:
      - '19080:80'
    volumes:
      - '/home/zentao/data:/data'
    environment:
      - ZT_MYSQL_HOST=<your mysql ip>
      - ZT_MYSQL_PORT=3306
      - ZT_MYSQL_USER=root
      - ZT_MYSQL_PASSWORD=<your mysql pass>
      - ZT_MYSQL_DB=paco_zentao #数据库名字随意写
      - ZT_REDIS_HOST=<your redis ip>
      - ZT_REDIS_PORT=6379
      - ZT_REDIS_PASSWORD=<your redis pass>
      - ZT_REDIS_SERIALIZER=igbinary
      - ZT_CACHE_ENABLE=true
      - ZT_CACHE_TYPE=redis
      - ZT_CACHE_SCOPE=private
      - ZT_CACHE_LIFETIME=0
      - ZT_REDIS_DATABASE=1
      - PHP_MAX_EXECUTION_TIME=120
      - PHP_MEMORY_LIMIT=512M
      - PHP_POST_MAX_SIZE=128M
      - PHP_UPLOAD_MAX_FILESIZE=128M
    networks:
      - zentao-net
networks:
  zentao-net:
    driver: bridge

鉴于大部分人无法拉取到docker hub的镜像,此处有两个方法解决:

1.替换Zentao自己的国内镜像源

# 国内镜像
# image: hub.zentao.net/app/zentao

2.自己搭建一个私有仓库,然后同步到自己的仓库去

参考教程:阿里云容器镜像服务搭一个自己的镜像仓库_aliyun仓库怎么容器镜像-CSDN博客

image-20250213172855611
准备好yml之后就可以运行容器:

#确保yml在/home/zentao目录下
docker-compose up -d

image-20250213171221470

执行成功后如上图所示等待输出,服务已启动完成, 请使用浏览器访问设置的域名或ip:port, 继续完成后续安装向导这段话后。就可以通过IP+19080端口访问禅道了。
image-20250213171248609
然后我们在网页上进行初始化操作。

三.网页初始化以及可能遇到的问题

访问网页后就会看见如下界面。点击开始安装然后一直下一步。

在这里插入图片描述
直到这个页面,确认检查全部通过,然后下一步。
image-20250213171645366

然后确认这个页面的信息是你配置的docker-compose文件中的数据库信息,这一步如果数据库是已经安装过一次了,就必须勾选清空现有数据选项。

image-20250213171744675

然后会继续安装数据库表

image-20250213171838022

正常流程,在数据库安装完成后,点下一步,会直接生成配置文件并保存。如图:

image-20250213173609429

然后设置账号:

image-20250213173700538

然后点击登录:

image-20250213173827545

image-20250213173844661

然后我们在后台,系统设置中的缓存里,点击Redis配置,就能看到已经自动填上了Redis的信息,就部署完成了。
image-20250213173942541

四.遇到的问题以及解决方法

1.问题描述

在网页初始化时,数据库安装完成后,点下一步,正常步骤,会直接生成配置文件并保存。但是我在第一次安装的时候,点击下一步,出现如下情况,提示还没有生成配置文件。

img_v3_02je_db5ddd62-803d-4265-a1ad-64591ba42c4g

2.解决办法和问题原因

在与官方工作人员确定之后,发现出现问题的原因是,我在部署的时候,Redis的密码有特殊字符,导致部署时无法连接上Redis。禅道系统就无法生成session。最后导致生成不了配置文件,我部署的Yml如下:

services:
# zentao service
  zentao:
    image: easysoft/zentao:21.4
    container_name: zentao
    pull_policy: always
    restart: always
    ports:
      - '19080:80'
    volumes:
      - '/home/zentao/data:/data'
    environment:
      - ZT_MYSQL_HOST=<your mysql ip>
      - ZT_MYSQL_PORT=3306
      - ZT_MYSQL_USER=root
      - ZT_MYSQL_PASSWORD=<your mysql pass>
      - ZT_MYSQL_DB=paco_zentao #数据库名字随意写
      - ZT_REDIS_HOST=<your redis ip>
      - ZT_REDIS_PORT=6379
      - ZT_REDIS_PASSWORD=RBzT,v2y56
      - ZT_REDIS_SERIALIZER=igbinary
      - ZT_CACHE_ENABLE=true
      - ZT_CACHE_TYPE=redis
      - ZT_CACHE_SCOPE=private
      - ZT_CACHE_LIFETIME=0
      - ZT_REDIS_DATABASE=1
      - PHP_MAX_EXECUTION_TIME=120
      - PHP_MEMORY_LIMIT=512M
      - PHP_POST_MAX_SIZE=128M
      - PHP_UPLOAD_MAX_FILESIZE=128M
    networks:
      - zentao-net
networks:
  zentao-net:
    driver: bridge

可以看到RBzT,v2y56有特殊字符,,但是碍于环境限制,没法修改Redis密码,所以只能去掉docker-compose.ymlRedis的相关配置,在部署好之后,于网页中自行配置Redisyml如下:

services:
# zentao service
  zentao:
    image: registry.cn-hangzhou.aliyuncs.com/docker_image-ljx/zentao:21.4
    container_name: zentao
    pull_policy: always
    restart: always
    ports:
      - '19080:80'
    volumes:
      - '/home/zentao/data:/data'
    environment:
      - ZT_MYSQL_HOST=<your mysql ip>
      - ZT_MYSQL_PORT=13306
      - ZT_MYSQL_USER=root
      - ZT_MYSQL_PASSWORD=<your mysql pass>
      - ZT_MYSQL_DB=paco_zentao
      - PHP_MAX_EXECUTION_TIME=120
      - PHP_MEMORY_LIMIT=512M
      - PHP_POST_MAX_SIZE=128M
      - PHP_UPLOAD_MAX_FILESIZE=128M
    networks:
      - zentao-net
networks:
  zentao-net:
    driver: bridge

配置Redis的界面还是在这个地方自行配置,效果是一样的:

这个问题,工作人员说会在后续的镜像中修复。

相关文章:

  • 【Python深入浅出㉗】Python3正则表达式:开启高效字符串处理大门
  • pdf.js默认显示侧边栏和默认手形工具
  • Node.js 完全教程:从入门到精通
  • QT 5.15.2 开发地图ArcGIS 100.15.6(ArcGIS Runtime SDK for Qt)
  • 【Spring AI】基于SpringAI+Vue3+ElementPlus的QA系统实现(后端)
  • 为什么配置Redis时候要序列化配置呢
  • C# 鼠标点击ToolStripStatuslabel 在线修改Text属性并存储加载显示Text属性
  • 无人机雨季应急救灾技术详解
  • 计算机毕业设计Tensorflow+LSTM空气质量监测及预测系统 天气预测系统 Spark Hadoop 深度学习 机器学习 人工智能
  • Linux 常见的虚拟文件系统
  • 大数据学习之PB级百战出行网约车二
  • MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 基础篇 part 10
  • Python----PyQt开发(PyQt高级:图像显示,定时器,进度条)
  • 2024年终总结和2025年规划
  • Java中使用EasyExcel
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_gmtime 函数
  • 每日Attention学习23——KAN-Block
  • 低空经济:开启未来空中生活的全新蓝海
  • 【动态规划】--- 斐波那契数模型
  • Golang关于结构体组合赋值的问题
  • 成都公积金新政征求意见:购买保障性住房最高贷款额度上浮50%
  • 绿城约13.93亿元竞得西安浐灞国际港港务片区地块,区内土地楼面单价首次冲破万元
  • 两国战机均未侵入对方领空,巴方公布对印回击细节
  • AI聊天机器人涉多起骚扰行为,专家呼吁加强伦理设计与监管
  • 十四届全国政协原常委、民族和宗教委员会原副主任苟仲文被提起公诉
  • 蓝佛安:中方将采取更加积极有为的宏观政策,有信心实现2025年的5%左右增长目标