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

Docker容器报错文件不存在但实际存在的问题求助

问题排查与解决建议

1. 检查脚本换行符格式

Windows环境默认用CRLF换行,而Linux容器仅识别LF换行。如果run.sh的换行符是CRLF,容器执行时会把#!/bin/sh\r当成完整命令路径,直接导致找不到文件。

  • 用VS Code等编辑器打开run.sh,将右下角的换行符切换为LF后保存;
  • 或在WSL/git bash中执行dos2unix docker/deployment/folder/scripts/run.sh完成格式转换。

2. 确认脚本执行权限

即便能查看文件内容,若脚本没有执行权限,Docker也会抛出类似错误。

  • 本地执行chmod +x docker/deployment/folder/scripts/run.sh,之后重新构建镜像;
  • 或在Dockerfile中添加RUN chmod +x /app/docker/deployment/folder/scripts/run.sh,确保容器内脚本权限正确。

3. 验证路径大小写一致性

Windows文件系统大小写不敏感,但Linux容器严格区分大小写。检查Compose文件中引用的路径与实际文件的大小写是否完全匹配(比如Deployment和deployment会被容器判定为不同路径)。

4. 清理Docker缓存重新构建

迁移后本地文件已更新,但Docker可能复用了旧镜像缓存,导致容器内的文件并未同步更新。

  • 执行docker-compose build --no-cache强制重新构建镜像,再启动容器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:05:35