Docker构建Node镜像失败:runc启动容器找不到/bin/sh
解决Docker构建时
/bin/sh: no such file or directory错误 错误exec: "/bin/sh": no such file or directory意味着执行RUN npm install时无法找到shell环境,以下是可行的解决办法:
使用带完整shell环境的Node镜像标签
部分node镜像变体(如无发行版的distroless版本)不包含shell,建议明确指定带shell的官方镜像:FROM node:lts WORKDIR /app COPY . /app RUN npm install EXPOSE 80 CMD ["node", "server.js"]若偏好轻量镜像,可选择alpine版本,并改用exec格式的RUN命令(无需依赖shell):
FROM node:lts-alpine WORKDIR /app COPY . /app RUN ["npm", "install"] EXPOSE 80 CMD ["node", "server.js"]重新拉取基础镜像
本地缓存的node:latest可能存在损坏,执行以下命令刷新镜像:docker pull node:latest之后重新运行
docker build .排查Docker运行时配置
若上述方法无效,检查Docker守护进程是否有特殊运行时配置,导致无法正常加载镜像内的shell环境。
内容的提问来源于stack exchange,提问作者Hammad Ahmad
相关产品推荐
相关产品推荐

