Docker 容器无法启动 NestJs 应用
Docker container fail to start NestJs app
我有 NestJs API 服务,当它 运行 使用 "npm run dev" 命令时它 运行 非常好。但是当我 dockerized 时,它无法 运行 应用程序。我也在容器中尝试了节点版本 9,10 和 12。但它 运行 在我的计算机中使用 运行 dev 命令顺利地使用节点版本 9。
我正在使用 docker run -it -p 9000:3001 dev-service
到 运行 容器。错误如下。
nestjs-sample-api@1.0.0 start /app
> node index.js "prod"
TypeError: Cannot read property 'constructor' of undefined
at Object.<anonymous> (/app/node_modules/cli-highlight/src/theme.ts:4:26)
at Module._compile (internal/modules/cjs/loader.js:654:30)
at Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Object.require.extensions.(anonymous function) [as .js] (/app/node_modules/ts-node/src/index.ts:406:14)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Module.require (internal/modules/cjs/loader.js:598:17)
at require (internal/modules/cjs/helpers.js:11:18)
at Object.<anonymous> (/app/node_modules/cli-highlight/src/index.ts:3:1)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! nestjs-sample-api@1.0.0 start: `node index.js "prod"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the nestjs-sample-api@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-05-15T03_20_53_617Z-debug.log
Docker 文件:
ROM node:9
WORKDIR /app
COPY package.json /app
COPY ormconfig.json /app
RUN npm install
COPY . /app
COPY ormconfig.json /dist/
CMD ["npm", "start", "prod" ]
我通过安装 chalk 库解决了这个问题。发生这种情况是因为承包商正在寻找粉笔并且它没有安装在节点模块中。但这只是在我 运行 通过 docker 时造成的。不管怎样,我把粉笔放入依赖项后它就起作用了。
我有 NestJs API 服务,当它 运行 使用 "npm run dev" 命令时它 运行 非常好。但是当我 dockerized 时,它无法 运行 应用程序。我也在容器中尝试了节点版本 9,10 和 12。但它 运行 在我的计算机中使用 运行 dev 命令顺利地使用节点版本 9。
我正在使用 docker run -it -p 9000:3001 dev-service
到 运行 容器。错误如下。
nestjs-sample-api@1.0.0 start /app
> node index.js "prod"
TypeError: Cannot read property 'constructor' of undefined
at Object.<anonymous> (/app/node_modules/cli-highlight/src/theme.ts:4:26)
at Module._compile (internal/modules/cjs/loader.js:654:30)
at Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Object.require.extensions.(anonymous function) [as .js] (/app/node_modules/ts-node/src/index.ts:406:14)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Module.require (internal/modules/cjs/loader.js:598:17)
at require (internal/modules/cjs/helpers.js:11:18)
at Object.<anonymous> (/app/node_modules/cli-highlight/src/index.ts:3:1)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! nestjs-sample-api@1.0.0 start: `node index.js "prod"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the nestjs-sample-api@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-05-15T03_20_53_617Z-debug.log
Docker 文件:
ROM node:9
WORKDIR /app
COPY package.json /app
COPY ormconfig.json /app
RUN npm install
COPY . /app
COPY ormconfig.json /dist/
CMD ["npm", "start", "prod" ]
我通过安装 chalk 库解决了这个问题。发生这种情况是因为承包商正在寻找粉笔并且它没有安装在节点模块中。但这只是在我 运行 通过 docker 时造成的。不管怎样,我把粉笔放入依赖项后它就起作用了。