基于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的界面还是在这个地方自行配置,效果是一样的:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/968997.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch:同义词在 RAG 中重要吗?

作者&#xff1a;来自 Elastic Jeffrey Rengifo 及 Toms Mura 探索 RAG 应用程序中 Elasticsearch 同义词的功能。 同义词允许我们使用具有相同含义的不同词语在文档中搜索&#xff0c;以确保用户无论使用什么确切的词语都能找到他们所寻找的内容。你可能会认为&#xff0c;由于…

0基础学LabVIEW

对于零基础的朋友来说&#xff0c;学习LabVIEW需要一个科学的学习路径和方法。通过观看优质的B站教程打好基础&#xff0c;再结合实际项目进行实践操作&#xff0c;能够快速提升LabVIEW的应用能力。以下是从入门到进阶的学习建议。 ​ 一、利用B站入门教程打基础 筛选优质教程…

7. Docker 容器数据卷的使用(超详细的讲解说明)

7. Docker 容器数据卷的使用(超详细的讲解说明) 文章目录 7. Docker 容器数据卷的使用(超详细的讲解说明)1. Docker容器数据卷概述2. Docker 容器数据卷的使用演示&#xff1a;2.1 宿主 和 容器之间映射添加容器卷2.2 容器数据卷 读写规则映射添加说明2.3 容器数据卷的继承和共…

零售行业线下门店的AI知识库应用实践

在竞争激烈的零售行业&#xff0c;线下门店的运营效率和服务质量是企业成功的关键因素之一。随着AI技术的不断发展&#xff0c;越来越多的零售企业开始探索如何利用AI知识库提升线下门店的运营效率和员工服务水平。 1. AI知识库在零售行业的应用背景 零售行业面临着诸多挑战&…

Unity Behavior Designer - Behavior Trees for Everyone(行为树)为什么称作AI 的“基石”之一

Behavior Designer 是 Unity 中一个用于创建行为树的插件&#xff0c;主要用于 AI 和 NPC&#xff08;非玩家角色&#xff09;的行为管理。行为树&#xff08;Behavior Trees&#xff09;是一种基于树形结构的决策树模型&#xff0c;广泛应用于游戏开发中&#xff0c;特别是在控…

八大排序——简单选择排序

目录 1.1基本操作&#xff1a; 1.2动态图&#xff1a; 1.3代码&#xff1a; 代码解释 1. main 方法 2. selectSort 方法 示例运行过程 初始数组 每轮排序后的数组 最终排序结果 代码总结 1.1基本操作&#xff1a; 选择排序&#xff08;select sorting&#xff09;也…

Jenkins 新建配置 Freestyle project 任务 六

Jenkins 新建配置 Freestyle project 任务 六 一、新建任务 在 Jenkins 界面 点击 New Item 点击 Apply 点击 Save 回到任务主界面 二、General 点击左侧 Configure Description&#xff1a;任务描述 勾选 Discard old builds Discard old builds&#xff1a;控制何时…

使用 Dockerfile 构建自定义 Nginx 镜像并集成 nginx_upstream_check_module

目录 1. 为什么需要自定义 Nginx 镜像&#xff1f; 2. Dockerfile 解析 2.1 基础镜像选择 2.2 安装依赖 2.3 下载并解压 Nginx 源码 2.4 应用补丁并编译 Nginx 2.5 暴露端口并设置启动命令 3. 构建并运行自定义 Nginx 镜像 3.1 构建镜像 3.2 运行容器 3.3 健康检测配…

【论文笔记】Are Self-Attentions Effective for Time Series Forecasting? (NeurIPS 2024)

官方代码https://github.com/dongbeank/CATS Abstract 时间序列预测在多领域极为关键&#xff0c;Transformer 虽推进了该领域发展&#xff0c;但有效性尚存争议&#xff0c;有研究表明简单线性模型有时表现更优。本文聚焦于自注意力机制在时间序列预测中的作用&#xff0c;提…

【MQ】Spring3 中 RabbitMQ 的使用与常见场景

一、初识 MQ 传统的单体架构&#xff0c;分布式架构的同步调用里&#xff0c;无论是方法调用&#xff0c;还是 OpenFeign 难免会有以下问题&#xff1a; 扩展性差&#xff08;高耦合&#xff0c;需要依赖对应的服务&#xff0c;同样的事件&#xff0c;不断有新需求&#xff0…

LabVIEW与USB设备开发

开发一台USB设备并使用LabVIEW进行上位机开发&#xff0c;涉及底层驱动的编写、USB通信协议的实现以及LabVIEW与设备的接口设计。本文将详细介绍如何开发USB设备驱动、实现LabVIEW与USB设备的通信以及优化数据传输&#xff0c;帮助用户顺利完成项目开发。下面是一个详细的说明&…

kali连接xshell

1.先保证宿主机&#xff1a;以太网适配器 VMware Network Adapter VMnet8 和kali&#xff08;net 模式&#xff09;在同一个网段 windows VMnet8开启 查看是否是自动获取ip ipv4 和ipv6一样的 查看 windows VMnet8的IPv4的地址 查看 kali 的IP地址 window ping的结果&#xf…

557. 反转字符串中的单词 III 简单

557. 反转字符串中的单词 IIIhttps://leetcode.cn/problems/reverse-words-in-a-string-iii/ 给定一个字符串 s &#xff0c;你需要反转字符串中每个单词的字符顺序&#xff0c;同时仍保留空格和单词的初始顺序。 示例 1&#xff1a; 输入&#xff1a;s "Lets take LeetC…

多语言订货系统的语言适配与本地化开发策略

在全球化浪潮的席卷下&#xff0c;商业世界的边界日益模糊&#xff0c;企业纷纷踏上国际化征程&#xff0c;与世界各地的客户展开紧密合作。在这一背景下&#xff0c;多语言订货系统成为企业开拓全球市场的关键基础设施&#xff0c;其语言适配能力与本地化开发策略&#xff0c;…

OpenWRT中常说的LuCI是什么——LuCI介绍(一)

我相信每个玩openwrt的小伙伴都或多或少看到过luci这个东西&#xff0c;但luci到底是什么东西&#xff0c;可能还不够清楚&#xff0c;今天就趁机来介绍下&#xff0c;openwrt中的luci&#xff0c;到底是个什么东西。 什么是LuCI&#xff1f; 首先&#xff0c;LuCI是OpenWRT中…

第39周:猫狗识别 2(Tensorflow实战第九周)

目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 输出 二、数据预处理 2.1 加载数据 2.2 再次检查数据 2.3 配置数据集 2.4 可视化数据 三、构建VGG-16网络 3.1 VGG-16网络介绍 3.2 搭建VGG-16模型 四、编译 五、训练模型 5.1 上次程序的主要Bug 5.2 修改版…

vue3 描边加载动画

效果&#xff1a; 组件代码&#xff1a; <template><divclass"loading-wrap"ref"loadingWrap":style"[{ borderRadius: styles.borderRadius || 4px },{ borderColor: styles.borderColor || #409eff },{ border: loading ? 1px solid #40…

20240911 光迅科技 笔试

文章目录 1、选择题1.11.21.31.41.51.61.71.81.91.101.111.121.131.141.152、编程题2.1岗位:嵌入式软件工程师 题型:15 道选择题,1 道编程题 注意:本文章暂无解析,谨慎分辨答案对错 1、选择题 1.1 若某图有 100 个顶点、90 条边,则该图一定是 (C) 有向图连通图非连…

C++软件开发常见面试题(二)

struct和class的区别 指针和引用的区别&#xff1f;c为什么提供了引用这个东西&#xff1f; 说const 指针和指针 const的区别&#xff1f;例如const A*是什么意思&#xff1f;了解const 函数吗&#xff1f;具体是不修改哪些数据成员呢&#xff1f; 多态。追问&#xff1a;动态…

[生信云问题分析] 为什么医院/单位/校园网络,无法通过ssh协议访问服务器

使用生信云,生信分析更省心轻松&#xff1b;欢迎访问生信圆桌 www.tebteb.cc了解 背景 许多科研人员在日常工作中需要使用单位的网络&#xff0c;但有时会遇到一个奇怪的现象&#xff1a;虽然网页可以正常打开&#xff0c;却无法通过SSH协议访问科研服务器。SSH&#xff08;Se…