Не удается найти модуль ‘/home/backend/dist/src/server.js-с Докером

#javascript #node.js #typescript #docker #docker-compose

Вопрос:

Очень новичок в Докере, но при попытке запустить контейнер после сборки я получаю следующую ошибку, кто-нибудь сталкивался с этим раньше?

 'internal/modules/cjs/loader.js:905
throw err;'
^

'Error: Cannot find module '/home/backend/dist/src/server.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
at Function.Module._load (internal/modules/cjs/loader.js:746:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
at internal/main/run_main_module.js:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []'
 

Я построил без докера и, кажется, все работает нормально, я запускаю следующие команды в файле докера (ниже):

docker build -t [name] .

docker run [name]

  FROM node:14.17.1 as base
 WORKDIR /home/backend
 //Add package file
 COPY package.json ./
 COPY yarn.lock ./
 //Install deps
 RUN yarn install

 //Copy source
 COPY src ./src
 COPY tsconfig.json ./tsconfig.json

 //Build dist
 RUN yarn build

 //Start production image build
 FROM gcr.io/distroless/nodejs:14

 //Copy node modules and build directory
 COPY --from=base /home/backend/dist ./home/backend/dist

 //Expose port 5000
 EXPOSE 5000
 CMD [ "/home/backend/dist/src/server.js" ]
 

Комментарии:

1. Действительно ли src внутри вашей папки dist есть папка?

2. Да, я проверил его dist/src/

3. COPY --from=base /home/backend/dist ./home/backend/dist может быть, в этом и проблема? Похоже, что это копирование с /home/backend/dist вашего компьютера на /home/backend/home/backend/dist (так как вы /home/backend уже находитесь в)

4. Глупая ошибка с моей стороны, спасибо!