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

Docker容器运行Node.js应用报错:找不到stripe模块

问题解决思路

核心问题是你的Dockerfile没有复制package.json和package-lock.json到容器中,npm ci需要这两个文件(至少package.json)来确定要安装的依赖,导致容器内根本没安装任何依赖,自然找不到stripe模块。

修正步骤

1. 调整Dockerfile的文件复制逻辑

正确的构建流程应该先复制依赖配置文件、安装依赖,最后复制项目代码,同时还能利用Docker的层缓存优化构建速度:

# syntax=docker/dockerfile:1

ARG NODE_VERSION=16.13.1
FROM node:${NODE_VERSION}-alpine

# Use production node environment by default.
ENV NODE_ENV production
WORKDIR /usr/src/app

# 先复制依赖配置文件到容器
COPY package*.json ./
# 安装生产环境依赖
RUN npm ci --only=production

# 再复制项目源码
COPY ./src .

USER node

EXPOSE 4343

CMD node server.js

2. 关键细节说明

  • COPY package*.json ./:会自动匹配根目录下的package.json和package-lock.json(如果存在),复制到容器工作目录
  • npm ci --only=production:仅安装dependencies中的生产依赖,符合NODE_ENV=production的配置,同时减少镜像体积
  • 必须确保项目根目录存在package-lock.json,如果本地没有,先执行npm install生成该文件,npm ci依赖它来精确安装依赖版本

3. 额外排查点

  • 确认package.json确实在项目根目录,而非src子目录下
  • 构建前清理本地缓存避免干扰:
    rm -rf node_modules
    docker system prune -f
    docker-compose build --no-cache
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 05:33:38