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

Docker构建时提示npm not found错误求助

问题解决:Docker构建时提示npm: not found

核心原因

你用的基础镜像是python:3.7-alpine,这个镜像里没有预装Node.js和npm。Docker构建过程完全在镜像内部的独立环境中执行,和你本地的Node/npm环境没有任何关联——本地能正常运行不代表容器镜像里也有这些工具。

解决方案

根据你的项目需求选择以下方案:

方案1:项目同时需要Python和Node

在Python镜像基础上,通过alpine的包管理器apk安装Node.js和npm:

# Added to fix building on ARM64 - causing error on AWS
FROM --platform=linux/amd64 python:3.7-alpine

# 安装Node.js和npm(--no-cache避免缓存冗余,可指定版本如nodejs=20.* npm=10.*)
RUN apk add --no-cache nodejs npm

# Set the working directory inside the Docker container
WORKDIR /usr/src/app

# Copy package.json and package-lock.json for installing dependencies
COPY package*.json ./

# Install dependencies defined in package.json
RUN npm install

# 后续你的其他构建命令...

方案2:项目不需要Python(误选了基础镜像)

直接替换成Node官方的alpine镜像,更贴合Node项目的需求:

FROM --platform=linux/amd64 node:20-alpine

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

# 后续你的其他构建命令...

关于你本地测试的额外说明

你执行/bin/sh npm -v时出现的语法错误,是因为npm是Node.js脚本,需要用Node环境解析,直接用sh执行会把它当成shell脚本处理,自然会识别不了Node的语法,这和容器里的问题本质都是缺少Node运行环境。

内容的提问来源于stack exchange,提问作者Jim Beck

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:33:13