【Docker】使用docker启动禅道出现mysql.sock 文件已经存在的bug

1.问题产生

1.最近刚把服务器停机迁移后重启禅道查看日志一直报错:failed to create symbolic link '/opt/zbox/tmp/mysql/mysql.sock': File exists

2.排查问题:

a.因为禅道是开源的,我们在github中找到docker镜像仓库:https://github.com/quicklyon/zentao-docker

b.在该仓库中搜索"/opt/zbox/tmp/mysql/mysql.sock"内容,可以找到此文件:https://github.com/quicklyon/zentao-docker/blob/79ea1594e61729d095e178a5fea5362352fbe631/debian/rootfs/etc/s6/s6-available/apache/run#L22C14-L22C14

c.通过查看代码发现其中的if逻辑为:"如果文件存在则创建链接",很明显这段逻辑写反了(bug实锤了)

知道问题了那就修改启动脚本

1.我们尝试修改容器的启动文件的逻辑,文件路径为:/etc/s6/s6-available/apache/run

2.在容器中找到:/etc/s6/s6-available/apache/run文件并打开

将其中的"if [ -e /data/mysql/tmp/mysql.sock ];then"改为
"if [ ! -e /data/mysql/tmp/mysql.sock ];then" 即可,本质就是在-e前面加了一个感叹号取反!

3.保存文件并重启容器

4.再次查看容器日志,容器有输出"Zentao is ready to use.",并且web可正常访问,那么问题支持就解决了

相关推荐
啊巴矲2 小时前
小白从零开始勇闯人工智能Linux初级篇(MySQL库)
数据库·mysql
帝吃藕和2 小时前
MySQL 知识点复习- 6.MySQL语法顺序
数据库·mysql
计算机学姐2 小时前
基于SSM的生鲜食品商城系统【2026最新】
java·vue.js·后端·mysql·java-ee·tomcat·mybatis
zfxwasaboy2 小时前
BUG: failure at drivers/pci/msi.c:376/free_msi_irqs()!
linux·c语言·bug
yscript3 小时前
GPU分配BUG: Duplicate GPU detected : rank 1 and rank 0 both on CUDA device d5000
linux·运维·服务器·vscode·bug
华仔-_-3 小时前
腾讯云centos+gitee 前端自动化部署
gitee·centos·腾讯云
Watermelo6173 小时前
【简单快速】windows中docker数据如何从C盘迁移到其他盘
java·运维·docker·容器·运维开发·devops·空间计算
凯子坚持 c3 小时前
深度解析 MySQL 与 MCP 集成:从环境构建到 AI 驱动的数据交互全流程
人工智能·mysql·交互
华仔啊3 小时前
MySQL锁机制详解,看这一篇就够了
后端·mysql