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

Windows10下React搭配Docker使用yarn出现install\r错误该如何解决?

问题原因

核心是Windows和Linux类系统的换行符兼容性问题:

  • Windows系统默认的文本换行符为CRLF(即\r\n),而你使用的Alpine镜像属于Linux系统,仅识别LF(即\n)作为换行符
  • 你本地Windows上的bootup.sh脚本保存时用了CRLF格式,被挂载到容器中执行时,每行末尾的\r会被Shell识别为命令的一部分,才会出现Command "install\r" not found、脚本语法解析错误的报错
  • 另一台Ubuntu设备本身默认使用LF换行,所以运行正常

解决方案

方案1:修改Git全局配置,避免自动转换换行符

Windows上Git默认会开启自动换行符转换,拉取代码时自动把LF转为CRLF,提交时再转回去,执行以下命令关闭该配置即可:

git config --global core.autocrlf false

配置完成后重新克隆仓库,再重新构建容器即可。

方案2:直接修改本地bootup.sh的换行符格式

用代码编辑器(比如VS Code、Notepad++)打开bootup.sh,把换行符格式从CRLF改为LF,保存后重新构建容器即可。

  • 以VS Code为例,点击编辑器右下角的CRLF标识,在弹出的选项中选择LF后保存文件即可。

方案3:在Dockerfile中增加换行符转换步骤(无需修改本地配置)

在Dockerfile中添加一行命令,构建镜像时自动把脚本的CRLF转为LF,修改后的Dockerfile对应部分如下:

ADD ./bootup.sh /var/www
RUN cd /var/www
# 新增以下行,用dos2unix转换换行符
RUN apk add --no-cache dos2unix && dos2unix /var/www/bootup.sh
RUN chmod +x /var/www/bootup.sh

修改后重新构建镜像即可生效。


内容的提问来源于stack exchange,提问作者E to the I

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:27:05