[英]What is the right way of production deployment of nestjs application
我开发了简单的 nestjs 休息服务。 现在我正计划部署我的应用程序。 请帮助我高效地部署 nestjs 应用程序。
1) 在你的服务器上检查你的项目的存储库并运行npm install
。
2) 运行npm run build
将您的项目编译为 javascript:
rimraf dist && tsc -p tsconfig.build.json
3) 开始你的申请:
node dist/main.js
看到这个答案。
1)将文件Procfile
添加到项目的根目录:
web: npm run start:prod
2) 将此行添加到您的package.json
的scripts
中:
"heroku-postbuild": "echo Skip builds on Heroku"
3) 在您的main.ts
中设置端口(或在您的ConfigService
中)
await app.listen(process.env.PORT || 3000);
如果您通过nest new project-name
创建一个新的 NestJS 项目,它将在package.json
中附带所需的脚本。
yarn build
yarn start:prod
其余取决于您要在何处托管应用程序。 NestJS 将在任何通用主机(Heroku、Vercel、AWS 等)上运行。
如果你想开始使用低配置且免费,你可以尝试使用以下 Dockerized 设置的 Heroku:
Dockerfile.prod
FROM node:14-alpine
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install
COPY . /app
RUN yarn build
heroku.yml
build:
docker:
web: Dockerfile.prod
run:
web: yarn start:prod
创建应用程序后运行
heroku git:remote --app <app-name>
heroku stack:set container
在你的bootstrap
函数( main.ts
)中使用PORT
env var:
await app.listen(process.env.PORT || 3000);
如果您使用的是数据库,则还必须对其进行设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.