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

Docker容器运行Express应用报错MODULE_NOT_FOUND找不到app.js模块求解

问题原因

报错是容器内/nodejs路径下不存在app.js文件,根源是你的Dockerfile存在两处错误:

  1. COPY指令的源路径写为绝对路径/src,会从宿主机根目录寻找src目录,而非当前构建目录下的src目录,最终没有把业务代码复制到容器内
  2. 操作顺序不合理,先复制业务代码再安装依赖会破坏镜像缓存,每次修改代码都需要重新下载npm依赖

修复方案

1. 替换Dockerfile内容为以下:

FROM node:14.17.0-alpine
# 指定工作目录
WORKDIR /nodejs
# 优先复制依赖配置文件,利用镜像缓存加速构建
COPY package*.json ./
RUN npm install
# 复制当前构建目录下src文件夹内的所有代码到工作目录
COPY ./src ./

CMD [ "node", "app.js" ]

2. 确认本地项目目录结构如下:

项目根目录(你执行docker命令的目录)
├── Dockerfile
├── package.json
├── package-lock.json
└── src
    └── app.js

3. 重新构建镜像并启动

在项目根目录执行构建命令,注意末尾的.不能省略,代表以当前目录作为构建上下文:

docker build -t docker-express-app .

构建完成后执行原启动命令即可:

docker run --name express-api -d -p 4000:4000 docker-express-app

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:54:05