'nestjs Docker build error: can not find tsconfig.build.json

here is my 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

COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package*.json ./
COPY --from=builder /app/dist ./dist

EXPOSE 3000
CMD [ "npm", "run", "start:dev" ]

and here is my docker-compose.yml:

version: "3.7"
services:
  web:
    image: Dockerfile
    build:
      context: ./
      dockerfile: Dockerfile.development
    volumes:
      - ./:/app:z
    environment:
      NODE_ENV : development
      TZ: "${TZ:-America/Los_Angeles}"
    ports:
      - "3000:3000"

After I run the docker-compose up -d, I can have the error from the console :

Error Could not find TypeScript configuration file "tsconfig.build.json". Please, ensure that you are running this command in the appropriate directory (inside Nest workspace).

I have tried to copy and paste tsconfig.build.json to the docker, but it still does not work.

please help.



Solution 1:[1]

In your last step, you never copy over the tsconfig.build.json file or the tsconfig.json. Though, I don't see why you're using start:dev when you've already built the server in the docker image. You should just be calling node dist/main

Solution 2:[2]

I don't use Docker, but I've got the same error:

Error Could not find TypeScript configuration file "tsconfig.build.json". Please, ensure that you are running this command in the appropriate directory (inside Nest workspace).

I solved this by deleting the dist folder and npm run start:dev again.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Jay McDoniel
Solution 2 Amro