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

Jenkins构建含ASP.NET项目的Dockerfile时出现npm not found错误

报错原因

你使用的mcr.microsoft.com/dotnet/sdk:2.1是微软官方的.NET SDK镜像,默认仅内置.NET相关的运行环境和构建工具,没有预装Node.js和npm组件,因此执行npm相关命令时会找不到可执行文件,该问题和你配置的npm业务命令无关。

解决方法

在Dockerfile的build阶段、执行npm命令之前,新增Node.js和npm的安装步骤即可,你可以根据项目对Node.js的版本要求选择适配的安装方案,修改后的Dockerfile参考如下:

FROM mcr.microsoft.com/dotnet/sdk:2.1 AS build

ARG PROFILE=Production

WORKDIR /app
COPY . ./

# 新增:安装对应版本的Node.js与npm,以下为Debian系镜像通用安装示例,可替换为符合版本要求的安装命令
RUN apt-get update \
    && apt-get install -y nodejs npm \
    && rm -rf /var/lib/apt/lists/*

RUN cd src/stayfolio.Demo.Web.aroundfollie \
    && npm install && npm run build:dll && npm start

RUN dotnet restore stayfolio.Demo.Web.sln \
    && cd src/stayfolio.Demo.Web.aroundfollie \
    && mkdir -p build/outputs/aroundfollie \
    && dotnet publish --output ../../build/outputs/aroundfollie/

FROM mcr.microsoft.com/dotnet/sdk:2.1

WORKDIR /app
COPY --from=build /app/build/outputs/aroundfollie ./

CMD ["dotnet", "stayfolio.Demo.Web.aroundfollie.dll"]

注:如果默认apt源安装的Node.js版本不符合项目要求,可自行调整安装命令,比如手动下载对应版本的二进制包配置环境变量,只要保证构建阶段npm命令可正常调用即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:15:03