运行docker-compose提示OCI runtime create failed找不到wait.sh如何解决
问题解决方案
你遇到的报错是service2容器启动时找不到./wait.sh文件,可按以下步骤排查解决:
- 优先检查镜像构建缓存问题:docker-compose默认启动时不会自动重新构建镜像,如果你之前有构建过不含
wait.sh的旧版本service2镜像,会直接复用旧镜像导致报错。执行以下命令强制重新构建service2镜像后再启动即可:docker-compose build --no-cache service2 docker-compose up - 替换相对路径为绝对路径:避免容器内工作目录识别异常导致的相对路径查找失败,把docker-compose中service2的command配置修改为绝对路径写法:
command: ["/service2/wait.sh", "service1:5432", "--", "python", "/service2/service2.py"] - 检查本地文件命名:确认你本地
./service2目录下的脚本文件名确实为wait.sh,没有大小写错误、多余后缀(比如wait.sh.txt)。Windows、macOS系统默认文件系统大小写不敏感,构建时可能不会报错,但容器内Linux系统大小写敏感,很容易引发间歇性找不到文件的问题。 - 清理异常旧镜像:如果上述步骤都无效,可以先删除本地已有的service2相关镜像,再重新构建启动:
# 查看service2镜像ID docker images | grep service2 # 删除对应镜像 docker rmi <查到的service2镜像ID>
内容的提问来源于stack exchange,提问作者Fake Genius
相关产品推荐
相关产品推荐

