#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. Глупая ошибка с моей стороны, спасибо!