【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可正常访问,那么问题支持就解决了

相关推荐
小敬爱吃饭9 分钟前
Ragflow Docker部署及问题解决方案(界面为Welcome to nginx,ragflow上传文件失败,Docker中的ragflow-cpu-1一直重启)
人工智能·python·nginx·docker·语言模型·容器·数据挖掘
杨云龙UP12 分钟前
从0到1快速学会Linux操作系统(基础),这一篇就够了!
linux·运维·服务器·学习·ubuntu·centos·ssh
MaCa .BaKa18 分钟前
47-心里健康咨询平台/心理咨询系统
java·spring boot·mysql·tomcat·maven·intellij-idea·个人开发
一江寒逸27 分钟前
零基础从入门到精通MySQL(上篇):筑基篇——吃透核心概念与基础操作,打通SQL入门第一关
数据库·sql·mysql
木子欢儿36 分钟前
Docker Hub 镜像发布指南
java·spring cloud·docker·容器·eureka
爱莉希雅&&&1 小时前
linux中MySQL数据库备份恢复的四种方法(更新中)
linux·数据库·mysql·数据库备份·mysqldumper
coppher2 小时前
Ubuntu 22.04 amd64 离线安装 Docker 完整教程
linux·docker
枕布响丸辣2 小时前
Python 操作 MySQL 数据库从入门到精通
数据库·python·mysql
Java开发追求者3 小时前
windows卸载mysql教程
mysql·mysql卸载
Cc_Debugger4 小时前
【饿了么plus-table】开启多选时,点击下面的单选按钮,页面显示是全选的样子,bug
bug