Получение сообщения об ошибке в приложении dockerising nest. js - PullRequest
1 голос
/ 06 марта 2020

Я работаю над приложением Nest. js, и это файл docker, который у нас есть. Когда я запускаю это, я получаю ошибку на шаге npm run build в docker. Это задача сборки в пакете. json. "build": "nest build"

sh: nest: not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! atom-qbuilder-api@0.0.1 build: `nest build`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the atom-qbuilder-api@0.0.1 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Docker файл

# Build
FROM node:8-alpine as builder

COPY package.json /usr/src/atom/package.json
COPY package-lock.json /usr/src/atom/package-lock.json
WORKDIR /usr/src/atom

# Install dependencies
RUN npm install --production --loglevel warn

ARG APPLICATION
ARG BRANCH
ARG BUILD_NUMBER
ARG SHA
ENV NODE_ENV qa
ENV VERSION 1.0.0


## Copy app directory in container and set workdir
COPY . /usr/src/atom

# Build & Test Coverage
RUN set -x \
  && npm run build \
  && echo "{ \"status\": \"Ok\", \"result\": { \"version\": \"$VERSION\", \"branchName\": \"$BRANCH\", \"SHA\": \"$SHA\", \"buildDate\": \"$(date)\", \"buildNumber\": \"$BUILD_NUMBER\", \"environment\": \"$NODE_ENV\" } }" > build.json

# Release
FROM node:8-alpine 

ENV PORT 3000

COPY --from=builder /usr/src/atom/node_modules /usr/src/atom/node_modules
COPY --from=builder /usr/src/atom/dist /usr/src/atom/dist
COPY --from=builder /usr/src/atom/package.json /usr/src/atom/package.json
COPY --from=builder /usr/src/atom/build.json /usr/src/atom/build.json
WORKDIR /usr/src/atom

EXPOSE $PORT
## Run supervisor as foreground process
CMD bash -c "npm run start:prod && /usr/bin/supervisord" 

1 Ответ

1 голос
/ 06 марта 2020

@nestjs/cli (откуда берется команда nest) по умолчанию в devDependencies. Если вы не изменили свои deps в package.json, запуск npm i --production не установит @nestjs/cli, что приведет к появившейся в данный момент ошибке. Вы можете использовать многоступенчатый докер-файл или переместить @nestjs/cli в dependencies вместо devDeps.

...