When I build my project with Docker, I get an error. I'm building a NestJS API with PostgreSQL and PGAdmin. Every time I deploy the stack, everything works, but when I click on the NestJS container, I get this error:
2025-02-18T15:58:14.254022352Z Error: Cannot find module '/usr/src/app/dist/main.js'
2025-02-18T15:58:14.254037315Z at Module._resolveFilename (node:internal/modules/cjs/loader:1225:15)
2025-02-18T15:58:14.254052667Z at Module._load (node:internal/modules/cjs/loader:1051:27)
2025-02-18T15:58:14.254067556Z at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:173:12)
2025-02-18T15:58:14.254082241Z at node:internal/main/run_main_module:28:49 {
2025-02-18T15:58:14.254096666Z code: 'MODULE_NOT_FOUND',
2025-02-18T15:58:14.254110833Z requireStack: []
2025-02-18T15:58:14.254125148Z }
2025-02-18T15:58:14.254171091Z
2025-02-18T15:58:14.254184943Z Node.js v20.18.3
It says it can't find the main.js file, but on my local machine, there is a main.js file in the dist folder. So, it should also be in the Docker files, right?
Here is my Dockerfile:
FROM node:20-bullseye AS builder
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM node:20-bullseye AS runner
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install --only=production
COPY --from=builder /usr/src/app/dist ./dist
EXPOSE 3000
CMD ["node", "dist/main.js"]
Here are all the files, which are in the Nestjs-Container:
# ls -la /usr/src/app/dist
total 36
drwxr-xr-x 5 root root 4096 Feb 18 14:02 .
drwxr-xr-x 1 root root 4096 Feb 18 14:02 ..
-rw-r--r-- 1 root root 181 Feb 18 14:02 app.controller.d.ts
-rw-r--r-- 1 root root 35 Feb 18 14:02 app.module.d.ts
-rw-r--r-- 1 root root 60 Feb 18 14:02 app.service.d.ts
drwxr-xr-x 3 root root 4096 Feb 18 14:02 auth
-rw-r--r-- 1 root root 11 Feb 18 14:02 main.d.ts
drwxr-xr-x 2 root root 4096 Feb 18 14:02 stats
drwxr-xr-x 2 root root 4096 Feb 18 14:02 todo
On my Localmachine, there are this Files in the Dist Folder: Files Local