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

相关推荐
乌托邦的逃亡者12 小时前
CentOS/Openeuler主机中,为一个网卡设置多个IP地址
linux·运维·网络·tcp/ip·centos
oldking呐呐12 小时前
MySQL从建库到删库跑路 -- 4.表的操作
后端·mysql
木雷坞13 小时前
视觉算法环境 Docker 镜像拉取失败排查
运维·人工智能·docker·容器
qq_2837200513 小时前
Python3 模块精讲:pymysql(第三方)- 连接 MySQL
mysql·adb·pymysql
czlczl2002092513 小时前
MySQL 性能优化:前缀索引(Prefix Index)深度解析
数据库·mysql·性能优化
瀚高PG实验室14 小时前
安全版V4.5版本docker容器license过期问题处理步骤
安全·docker·容器·瀚高数据库
java_logo14 小时前
SiYuan 思源笔记 Docker 部署终极指南:Windows+Linux 双平台
windows·笔记·docker·思源笔记·思源笔记部署·docker部署思源笔记·思源笔记文档
y = xⁿ14 小时前
MySQL八股知识合集
android·mysql·adb
Hello.Reader14 小时前
Ubuntu 上正确安装 Kali 虚拟机、Docker 与 kail 工具指南
linux·ubuntu·docker