当前位置: 首页 > 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前面加了一个感叹号取反。

保存文件并重启容器。

再次查看日志,如下图:

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

相关文章:

  • 双栈共享一个栈空间
  • 小黑黑日常积累:dataclass的简单使用
  • 高效使用AI大模型:测试工程师提示词编写框架
  • [Java 基础]面向对象-继承
  • 【el-progress】element UI 进度条组件
  • 时间序列预测:LSTM与Prophet对比实验
  • Spring AI Tool Calling
  • 深入解析Java17核心新特性(密封类、模式匹配增强、文本块)
  • C++ 变量三
  • 前端八股之JS的原型链
  • 项目实战——C语言扫雷游戏
  • MySQL ACID 面试深度解析:原理、实现与面试实战
  • SARIMA时间序列分析:三大模型对比
  • Python网页数据抓取常用的库及方法介绍
  • SpringBoot+Mybatisplus配置多数据源(超级简单!!!!)
  • C# 一个解决方案放一个dll项目,一个dll测试项目 ,调试dll项目的源码
  • NLP学习路线图(二十三):长短期记忆网络(LSTM)
  • BERT vs Rasa 如何选择 Hugging Face 与 Rasa 的区别 模型和智能体的区别
  • 祝贺XC3576H通过银河麒麟桌面操作系统的兼容性测试,取得麒麟软件互认证证书
  • tensorflow image_dataset_from_directory 训练数据集构建
  • 项目的网站是用JSP做的吗/优化营商环境心得体会个人
  • 铜陵app网站做招聘/优化网站
  • 仿制手机网站教程/推手平台哪个靠谱
  • 保险做的好的网站有哪些/今日重大新闻头条十条
  • 网站咨询弹窗是怎么做的/上海关键词seo
  • 嵊州门户网站/杭州网站排名提升