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

Docker构建Node.js API镜像失败:无法读取指定文件目录

解决Node.js API Docker构建时找不到/api/products目录的问题

针对你遇到的Error: ENOENT: no such file or directory, scandir '/app/api/products'错误,核心原因是容器内未正确复制本地的api/products目录,按以下步骤排查修复:

  • 检查Dockerfile的COPY指令
    确保你在安装依赖后,用COPY . .把本地项目根目录的所有文件(包括api目录)复制到容器的/app目录。很多人会只复制package*.json安装依赖,却漏掉复制源码目录,导致容器里缺少api/products。示例正确的Dockerfile片段:

    WORKDIR /app
    COPY package*.json ./
    RUN npm install
    # 关键步骤:复制全部源码
    COPY . .
    
  • 确认docker-compose的构建上下文
    检查docker-compose.yml里build字段的context是否指向你的项目根目录(也就是包含api文件夹的那个目录)。如果上下文路径错误,Docker会找不到本地的api/products目录。

  • 排查.dockerignore文件
    如果项目根目录有.dockerignore,打开检查是否存在api/products或者api/的排除规则,要是有就删除对应行,避免Docker复制时跳过该目录。

  • 临时验证容器内目录结构
    可以在Dockerfile中添加一行调试命令,查看容器内的目录情况:

    COPY . .
    # 查看/api目录下的文件
    RUN ls -la /app/api
    

    重新执行docker-compose up --build,观察这一步的输出,确认products目录是否存在。

本地npm start能正常运行,说明源码本身没问题,问题完全出在Docker构建时的文件复制环节,按上面的步骤逐一排查就能解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:02:32