backend: Create npm script package
This script creates a directory `backend/package` which only contains the files required by the backend at runtime: - The contents of `dist` - `node_modules` minus `typescript` and `@typescript-eslint`. These packages are build-only and are larger than the remaining whole package. By using only `backend/package` in the Docker image, the backend content size in the image is decreased by 70% to 31M. This, along with the improved copying in the Dockerfile, reduces the backend image size by 44% to 200M. (Step `RUN chown -R 1000:1000 /backend ...` created a layer that effectively duplicated the backend.)
This commit is contained in:
@@ -24,6 +24,8 @@
|
||||
"tsc": "./node_modules/typescript/bin/tsc -p tsconfig.build.json",
|
||||
"build": "npm run tsc && npm run create-resources",
|
||||
"create-resources": "cp ./src/tasks/price-feeds/mtgox-weekly.json ./dist/tasks && node dist/api/fetch-version.js",
|
||||
"package": "npm run build && rm -rf package && mv dist package && mv node_modules package && npm run package-rm-build-deps",
|
||||
"package-rm-build-deps": "(cd package/node_modules; rm -r typescript @typescript-eslint)",
|
||||
"start": "node --max-old-space-size=2048 dist/index.js",
|
||||
"start-production": "node --max-old-space-size=4096 dist/index.js",
|
||||
"test": "./node_modules/.bin/jest --coverage",
|
||||
|
||||
Reference in New Issue
Block a user