WSL环境下docker-compose up报错:找不到/app/start.sh文件求助
解决WSL环境中Docker容器启动时找不到start.sh的问题
检查COPY/ADD指令与.dockerignore配置
确认Dockerfile里的COPY/ADD指令是否正确将本地start.sh复制到镜像的/app目录,比如COPY start.sh /app/start.sh。同时检查.dockerignore文件,避免误将start.sh排除在构建上下文外。验证镜像内文件是否存在
构建完成后,手动运行临时容器查看镜像内容:docker run --rm <你的镜像名称> ls -l /app另外注意
RUN ls指令必须放在COPY指令之后,否则构建时还未复制文件,自然看不到输出。修复脚本换行符问题
Windows下创建的脚本默认是CRLF换行,Linux容器无法正确解析,会伪装成“文件找不到”的错误。可以:- 在WSL中执行
dos2unix start.sh转换换行符 - 在VS Code中点击右下角的
CRLF切换为LF后重新保存脚本
- 在WSL中执行
调整ENTRYPOINT/CMD指令
尝试用shell命令组合先查看目录再执行脚本,方便排查启动时的目录状态:CMD ["sh", "-c", "ls -l /app && /app/start.sh"]确保指令中使用的
/app/start.sh绝对路径无误。规避WSL挂载目录的权限问题
如果项目放在Windows挂载到WSL的目录(如/mnt/c/...),可能因权限冲突导致复制到镜像的文件异常。将项目复制到WSL原生目录(如~/projects/)后重新构建。
内容的提问来源于stack exchange,提问作者Huy Vũ
相关产品推荐
相关产品推荐

