【发布时间】:2022-01-22 02:41:00
【问题描述】:
我有这个 docker 文件:
FROM node:14.15.0 as build
WORKDIR /node-app
COPY package*.json /node-app/
RUN npm set progress=false && npm config set depth 0 && npm cache clean --force
RUN npm install
COPY . .
RUN npm run build
FROM node:14.15
WORKDIR /node-app
COPY package.json /node-app/
RUN npm install --only=production
COPY --from=build /node-app/dist ./dist
RUN npm run start:prod
使用这个 package.json
{
"name": "genysis-dbservice",
"version": "0.0.1",
"description": "",
"author": "",
"license": "UNLICENSED",
"scripts": {
"prebuild": "rimraf dist",
"build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"start": "nest start",
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json"
},
"private": true,
"dependencies": {
"@nestjs/common": "^7.6.5",
"@nestjs/config": "^0.6.1",
"@nestjs/core": "^7.6.5",
"@nestjs/microservices": "^7.6.5",
"@nestjs/platform-express": "^7.6.5",
"@nestjs/websockets": "^7.6.5",
"core-js": "^3.6.5",
"neo4j-driver": "^4.1.1",
"reflect-metadata": "^0.1.12",
"rimraf": "^2.6.2",
"rxjs": "^6.3.3"
},
"devDependencies": {
"@nestjs/testing": "^7.4.2",
"@types/express": "^4.16.0",
"@types/jest": "^26.0.9",
"@types/node": "^10.12.18",
"@types/supertest": "^2.0.7",
"concurrently": "^4.1.0",
"jest": "^26.3.0",
"nodemon": "^1.18.9",
"prettier": "^1.15.3",
"supertest": "^3.4.1",
"ts-jest": "^26.2.0",
"ts-node": "8.1.0",
"tsconfig-paths": "3.8.0",
"tslint": "5.16.0",
"typescript": "~4.0.5",
"wait-on": "^3.2.0"
},
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"coverageDirectory": "../coverage",
"testEnvironment": "node"
}
}
还有这个 tsconfig:
"compilerOptions": {
"module": "commonjs",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es2019",
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./",
"incremental": true
},
"exclude": ["node_modules"]
}
我的节点是 14.15.0 版本,我的 npm 是 6.14.8,全局嵌套是 7.5.4。 我已将 typescript 版本从 ~4.5.0 更改为 4.4.2 再到 4.0.5,但在 RUN npm run build 上仍然出现故障。
#16 2.145 sh: 1: nest: not found
不用说 npm run build 和 run start:prod 在 docker 之外工作正常.....
【问题讨论】:
标签: node.js typescript docker nestjs