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

Windows环境下CapRover部署时找不到docker-entrypoint.sh问题求助

解决Windows下CapRover部署Rails项目出现docker-entrypoint.sh: not found的问题

核心原因

Windows系统默认换行符是CRLF(\r\n),而Linux容器仅识别LF(\n)换行符。你从git拉取项目时,git默认会将LF转换为CRLF,导致docker-entrypoint.sh脚本的换行符变成CRLF,容器内执行脚本时会把\r当成文件名的一部分,实际查找的是docker-entrypoint.sh\r,因此提示找不到文件。

不修改项目文件的临时解决方案

1. 临时调整当前项目的git换行符设置

在项目根目录的终端中执行以下命令,禁用git的自动换行符转换:

git config core.autocrlf false

接着重置当前分支,确保脚本文件以LF换行符存储:

git reset --hard HEAD

之后再执行CapRover部署命令:

caprover deploy

部署完成后,若需恢复原有git设置,执行:

git config core.autocrlf true

2. 通过WSL(Windows子系统Linux)执行部署

利用WSL的Linux兼容环境避免换行符问题:

  • 打开WSL终端,进入你的Rails项目目录
  • 确保WSL中已安装git和CapRover客户端
  • 直接在WSL中执行:
caprover deploy

3. 临时转换脚本换行符(本地仅部署用)

如果没有WSL,可临时转换docker-entrypoint.sh的换行符:

  • 使用dos2unix工具(若已安装):
dos2unix docker-entrypoint.sh
  • 或用Notepad++:打开脚本后,点击「编辑」→「文档格式转换」→「转为UNIX格式」,保存后再执行部署。部署完成后无需恢复,下次拉取git会自动转回CRLF(若你之前的git设置是默认的)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:55:28