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

相关推荐
渡我白衣几秒前
【MySQL基础】(2):数据库基础概念
数据库·人工智能·深度学习·神经网络·mysql·机器学习·自然语言处理
风流倜傥唐伯虎6 分钟前
Windows 版 Docker 的 Linux 环境(docker-desktop)与 builder-jammy-base:latest 镜像核心区别
linux·docker·容器
Ha_To8 分钟前
2026.1.30 搭建docker仓库
运维·docker·容器
lpfasd12310 分钟前
Docker Desktop 在国内使用的囧境:镜像拉取失败、加速器失效与破局之道
运维·docker·容器
怣5015 分钟前
MySQL WHERE子句完全指南:精准过滤数据的艺术
数据库·mysql
江湖有缘15 分钟前
Docker部署SurveyKing调查问卷系统和考试系统
运维·docker·容器
Fleshy数模10 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
az44yao11 小时前
mysql 创建事件 每天17点执行一个存储过程
mysql
一只自律的鸡12 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
秦老师Q12 小时前
php入门教程(超详细,一篇就够了!!!)
开发语言·mysql·php·db