You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11下Docker Compose启动MSSQL容器提示entrypoint.sh不存在求助

问题解决:Docker启动时报exec ./entrypoint.sh: no such file or directory错误

可能原因及修复方案

1. 脚本换行符不兼容(Windows环境高频问题)

Windows系统默认使用CRLF换行格式,而Linux容器仅识别LF格式。若entrypoint.sh是在Windows下创建/编辑的,会导致容器无法正确解析脚本。

  • 修复方式:
    • 在VS Code等编辑器中打开entrypoint.sh,点击右下角的「CRLF」切换为「LF」,保存后重新构建镜像。
    • 或在Dockerfile中添加转换命令(需root权限):
      RUN apt-get update && apt-get install -y dos2unix && dos2unix /usr/config/entrypoint.sh /usr/config/configure-db.sh
      

2. 脚本路径匹配问题

Dockerfile中已设置WORKDIR /usr/config,理论上./entrypoint.sh路径有效,但可尝试绝对路径排查:

  • 修改ENTRYPOINT为绝对路径:
    ENTRYPOINT ["/usr/config/entrypoint.sh"]
    

3. COPY命令路径验证

确认src/db/目录下确实存在entrypoint.sh,并在Dockerfile中添加验证命令排查文件是否被正确复制:

RUN ls -la /usr/config/  # 查看目录内容,确认entrypoint.sh存在且路径正确

4. 脚本权限强化

虽然已执行chmod +x,可进一步提升权限确保可执行:

RUN chmod 755 /usr/config/entrypoint.sh /usr/config/configure-db.sh

5. 强制重新构建镜像

旧镜像缓存可能导致问题残留,执行强制构建命令:

docker compose build --no-cache mssql_server

内容的提问来源于stack exchange,提问作者ccy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 04:12:35