Когда я строю свой проект с Docker, я получаю ошибку. Я строю API Nestjs с Postgresql и Pgadmin. Каждый раз, когда я развертываю стек, все работает, но когда я нажимаю на контейнер NestJS, я получаю эту ошибку: < /p>
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
< /code>
говорит, что не может найти файл main.js, но на моей локальной машине есть файл main.js в папке Dist. Итак, это также должно быть в файлах Docker, верно? < /P>
Вот мой dockerfile: < /p>
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"]
< /code>
Вот все файлы, которые находятся в Nestjs-container: < /p>
# 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
На моей локальной области есть эти файлы в папке Dist: файлы локальные
Когда я строю свой проект с Docker, я получаю ошибку. Я строю API Nestjs с Postgresql и Pgadmin. Каждый раз, когда я развертываю стек, все работает, но когда я нажимаю на контейнер NestJS, я получаю эту ошибку: < /p> [code]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 < /code> говорит, что не может найти файл main.js, но на моей локальной машине есть файл main.js в папке Dist. Итак, это также должно быть в файлах Docker, верно? < /P> Вот мой dockerfile: < /p> 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"] < /code> Вот все файлы, которые находятся в Nestjs-container: < /p> # 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 [/code] На моей локальной области есть эти файлы в папке Dist: файлы локальные