当前位置: 首页 > news >正文

解决docker运行zentao 报错:ln: failed to create symbolic link ‘/opt/zbox/tmp/mysq

1 背景描述

禅道使用docker部署运行过一段,服务正常。

后因服务器断电重启,禅道服务也随docker一起启动,但是服务却无法访问。如下如:

2 查看日志,定位原因

查看禅道日志:

# docker logs  zentao容器didocker logs  e35d4b4d9f62


错误显示:In: failed to create symbolic link '/opt/zbox/tmp/mysql/mysql.sock': File exists

这个错误通常发生在容器启动过程中,尝试创建一个符号链接(symbolic link)时,但目标位置已经存在一个同名的文件(或目录)。

具体原因分析:

在 Docker 中运行禅道(Zentao)时出现 failed to create symbolic link '/opt/zbox/tmp/mysql/mysql.sock': File exists 错误,主要由以下原因导致:

  1. 残留文件冲突

    • 当容器重启重新创建时,如果宿主机通过 -v 挂载了持久化目录(如 ./zbox:/opt/zbox),残留的 mysql.sock 文件会保留在宿主机目录中。

    • 容器启动时,MySQL 服务尝试创建新的 mysql.sock 符号链接,但旧文件已存在,导致冲突。

  2. 容器未正确清理

    • 如果之前容器非正常退出(如强制终止 docker kill),MySQL 未完成清理流程,导致 mysql.sock 文件未被删除。

  3. 权限问题(次要可能)

    • 挂载目录的权限不足,导致容器无法覆盖已有文件(但错误提示明确为 File exists,优先级较低)。

为什么已经存在?

1.可能是由于之前的容器运行后异常退出,没有正确清理,导致该文件残留。

2.或者,在宿主机的卷挂载(volume mount)中,如果该目录被挂载到宿主机的一个目录,而宿主机目录中已经存在`mysql.sock`文件,那么容器启动时就会看到这个文件已经存在。

3 解决方案

方案1 : 删除容器内已存在的文件:/opt/zbox/tmp/mysql/mysql.sock

#进入容器docker exec –it <container id or name> /bin/bash# 查看文件
cd /opt/zbox/tmp/mysql# 删除文件
rm mysql.sock

重启容器即可。

方案2:修改启动脚本

#进入容器
docker exec –it <container id or name> /bin/bash
#找到运行脚本
cd /etc/s6/s6-available/apache/
#修改脚本
vi run
#该禅道版本为18.5,修改第21行
原文: if [ -e /data/mysql/tmp/mysql.sock ];then
修改为:if [! -e /data/mysql/tmp/mysql.sock ];then

本质就是在-e前面加了一个感叹号取反。

保存文件并重启容器。

再次查看日志,如下图:

再次访问服务,服务能正常打开。如下图:

http://www.lqws.cn/news/132229.html

相关文章:

  • Webpack性能优化:构建速度与体积优化策略
  • 如何用AI高效运营1000+Tiktok矩阵账号
  • 防止网站被iframe嵌套的安全防护指南
  • 红外测温传感器:为母婴类产品精准测温保驾护航
  • 大模型相关技术综述
  • Day12
  • TMS320C55xx——AIC23B的进阶使用_中断与DMA+中断
  • [网页五子棋][匹配模块]实现胜负判定,处理玩家掉线
  • 前端面试二之运算符与表达式
  • 十六、【前端强化篇】完善 TestCase 编辑器:支持 API 结构化定义与断言配置
  • <el-table>构建树形结构
  • nest实现前端图形校验
  • yaffs2目录搜索上下文数据结构struct yaffsfs_dirsearchcontext yaffsfs_dsc[] 详细解析
  • TDengine 在电力行业如何使用 AI ?
  • AtCoder解析大全
  • 前端面试总结
  • 厂商与经销商供应链数据协同:策略、实践与深度价值挖掘
  • SecureCRT 设置超时自动断开连接时长
  • 通光散基因组-文献精读139
  • 微服务商城-用户微服务
  • 大数据Spark(六十一):Spark基于Standalone提交任务流程
  • 多模态大语言模型arxiv论文略读(107)
  • Python 入门到进阶全指南:从语言特性到实战项目
  • Go语言学习-->项目中引用第三方库方式
  • C# Wkhtmltopdf HTML转PDF碰到的问题
  • 力扣HOT100之二分查找:74. 搜索二维矩阵
  • MySQL索引(index)
  • 渗透测试服务如何全方位评估企业安全状况并揭示潜在缺陷?
  • MYSQL(二) ---MySQL 8.4 新特性与变量变更
  • Python爬虫之数据提取