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

NestJS Docker构建报错找不到tsconfig.build.json问题求助

报错原因
  • Dockerfile 多阶段构建的第二阶段未设置工作目录,所有从构建阶段复制的文件都被放到了容器根目录而非/app目录下,同时开发模式启动命令npm run start:dev依赖tsconfig.build.json、tsconfig.json两个配置文件,你第二阶段的复制逻辑里没有包含这两个文件。
  • docker-compose.yml 配置存在多处错误:首先build配置中指定的dockerfile名称为Dockerfile.development,和你实际提供的Dockerfile文件名不匹配,会导致构建镜像时读取不到正确的配置;其次volumes配置将本地当前目录挂载到容器/app目录,会直接覆盖容器内构建好的所有文件,如果你本地目录下没有对应ts配置文件,或者文件位置不对,就会直接触发报错;另外image字段填写为Dockerfile属于无效值,无需额外配置。
  • 构建逻辑和启动命令不匹配:你使用了多阶段构建提前打包出了dist产物,但是最终启动用的是开发模式命令,完全浪费了多阶段构建的能力,还额外引入了ts编译依赖。
修复方案

根据你的使用场景选择对应配置即可:

场景1:开发环境(需要本地代码热更新)

1. 重命名你的Dockerfile为Dockerfile.development,修改内容如下:

FROM node
WORKDIR /app
COPY package*.json ./
COPY prisma ./prisma/
RUN npm install
EXPOSE 3000
CMD [ "npm", "run", "start:dev" ]

2. 修改docker-compose.yml内容如下:

version: "3.7"
services:
  web:
    build:
      context: "./"
      dockerfile: "Dockerfile.development"
    volumes:
      - "./:/app:z"
      # 排除node_modules挂载,避免本地和容器内依赖版本/架构不一致导致报错
      - /app/node_modules
    environment:
      NODE_ENV : "development"
      TZ: "${TZ:-America/Los_Angeles}"
    ports:
      - "3000:3000"

3. 确认本地项目根目录(执行docker-compose命令的目录)下存在tsconfig.build.json和tsconfig.json文件,文件读取权限正常。

场景2:生产环境(无需热更新,直接运行构建产物)

1. 修改Dockerfile内容如下:

FROM node AS builder
WORKDIR /app
COPY package*.json ./
COPY prisma ./prisma/
COPY tsconfig.build.json ./
COPY tsconfig.json ./
RUN npm install
COPY . .
RUN npm run build

FROM node
WORKDIR /app
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package*.json ./
COPY --from=builder /app/dist ./dist
EXPOSE 3000
# 生产模式用start:prod启动,无需ts相关配置文件
CMD [ "npm", "run", "start:prod" ]

2. 修改docker-compose.yml内容如下:

version: "3.7"
services:
  web:
    build:
      context: "./"
      dockerfile: "Dockerfile"
    environment:
      NODE_ENV : "production"
      TZ: "${TZ:-America/Los_Angeles}"
    ports:
      - "3000:3000"

修复完成后执行docker-compose down -v清理旧容器和挂载卷,再执行docker-compose up --build -d重新构建启动即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:06:04