Windows Linux容器构建React Docker镜像时npm install执行失败求助
Windows上Linux容器构建React Docker镜像失败问题解决
我在Windows电脑上使用Linux容器构建React应用的Docker镜像时,遇到错误executor failed running [/bin/sh -c npm install --silent]: exit code: 1。
我的Dockerfile内容
FROM node:alpine # set working directory WORKDIR /app # add `/app/node_modules/.bin` to $PATH ENV PATH /app/node_modules/.bin:$PATH # install app dependencies COPY package.json ./ COPY package-lock.json ./ RUN npm install react-scripts@3.4.1 -g --silent RUN npm install npm@9.3.1 -g --silent RUN npm install --silent # add app COPY . ./ # start app CMD ["npm", "start"]
构建日志报错信息(翻译后)
npm 通知 npm 通知:有npm的新版本可用!9.2.0 -> 9.3.1 npm 通知:更新日志:<https://github.com/npm/cli/releases/tag/v9.3.1> npm 通知:运行 `npm install -g npm@9.3.1` 进行更新! npm 通知 命令'/bin/sh -c npm install react-scripts@3.4.1 -g --silent'返回非零代码:4294967295:关闭容器失败:容器5e7d0556df544832e3d6f1b1d0a872b229214cf124759dbc6faddbd782901fb0在hcsshim::System::waitBackground过程中遇到错误:Windows系统调用失败:指定的容器或虚拟机未运行。(0xc0370110):后续终止操作失败,容器5e7d0556df544832e3d6f1b1d0a872b229214cf124759dbc6faddbd782901fb0在hcsshim::System::waitBackground过程中遇到错误:Windows系统调用失败:指定的容器或虚拟机未运行。(0xc0370110)
解决方法
1. 检查Docker与WSL2集成状态
- 打开Docker Desktop,进入「设置」->「资源」->「WSL集成」,确保目标WSL2发行版(如Ubuntu)已启用
- 执行
wsl --shutdown关闭所有WSL实例,再重启Docker Desktop和WSL终端
2. 优化Dockerfile避免环境冲突
全局安装工具易引发权限或环境兼容问题,调整后的Dockerfile如下:
FROM node:18-alpine # 使用更稳定的Node.js版本 WORKDIR /app # 优先复制依赖文件,复用Docker缓存 COPY package*.json ./ # 项目内安装react-scripts,而非全局安装 RUN npm install --silent RUN npm install react-scripts@3.4.1 --silent ENV PATH /app/node_modules/.bin:$PATH COPY . ./ CMD ["npm", "start"]
3. 清理Docker冗余资源
执行docker system prune -a清理无效镜像、容器和缓存,之后重新执行构建命令docker build -t react-app .
4. 调整WSL2内存分配
WSL2内存不足可能导致容器异常关闭,在Windows用户目录下创建.wslconfig文件并添加配置:
[wsl2] memory=4GB processors=2
执行wsl --shutdown重启WSL后再尝试构建
内容的提问来源于stack exchange,提问作者VersifiXion
相关产品推荐
相关产品推荐

