我已经开发了简单的nestjs rest服务。现在,我计划部署我的应用程序。请为我提供有效的Nestjs应用程序生产部署方式。
答案 0 :(得分:1)
1)结帐项目的存储库中的服务器和运行在npm install
。
2)运行npm run build
,它将您的项目编译为javascript:
rimraf dist && tsc -p tsconfig.build.json
3)使用以下命令启动您的应用程序:
node dist/main.js
请参阅此answer。
1)将文件Procfile
添加到项目的根目录:
web: npm run start:prod
2)将此行添加到您的package.json
的{{1}}:
scripts
3)在"heroku-postbuild": "echo Skip builds on Heroku"
(或main.ts
)中设置端口
ConfigService
答案 1 :(得分:1)
如果您通过 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
环境变量:
await app.listen(process.env.PORT || 3000);
如果您使用的是数据库,则还必须进行设置。