本文档概述了将 RealWorld 项目部署到各种托管环境的过程。它涵盖了部署先决条件、平台选项、配置要求和部署工作流。有关支持部署过程的构建系统配置的信息,请参阅 Turbo 配置。
RealWorld 项目的部署涉及部署两个主要组件:
每个组件都可以根据您的需求部署到不同的平台。
来源: Procfile1-2
在部署 RealWorld 应用程序之前,请确保您已满足以下先决条件:
RealWorld 项目包含一个用于 Heroku 部署的 Procfile,该文件定义了应用程序部署时要运行的命令。
注意:Procfile 中存在重复的 && 运算符,似乎存在语法错误。修正后的版本应为:
web: cd apps/api && npx prisma generate && pnpm build && pnpm start
来源: Procfile1-2
安装 Heroku CLI 并登录
heroku login
创建新的 Heroku 应用程序
heroku create realworld-api
添加 PostgreSQL 数据库
heroku addons:create heroku-postgresql:hobby-dev
配置环境变量
heroku config:set JWT_SECRET=your_secret NODE_ENV=production
部署应用程序
git push heroku main
对于容器化部署,您可以根据 Procfile 中的构建和启动命令来创建 Docker 配置。
来源: Procfile1-2
RealWorld 应用程序需要几个环境变量才能正确部署:
| 可变 | 描述 | 必填 | 示例 |
|---|---|---|---|
DATABASE_URL | Prisma 数据库连接字符串 | 是 | postgresql://user:password@host:port/dbname |
JWT_SECRET | 用于 JWT 身份验证的密钥 | 是 | your-secret-key |
PORT | API 服务器的端口 | 否(默认:3000) | 3000 |
NODE_ENV | 环境模式 | 否(默认:development) | production |
Turbo 已配置为通过其 globalDependencies 设置识别本地环境文件。
来源: turbo.json3
部署 RealWorld 应用程序时,正确设置和迁移数据库非常重要。
用于部署的 Prisma 命令
将迁移应用到生产数据库
npx prisma migrate deploy
生成 Prisma 客户端(也包含在 Procfile 中)
npx prisma generate
来源: Procfile1-2
RealWorld 项目包含用于 CodeQL 安全分析的 GitHub Actions 工作流,该工作流可作为 CI/CD 管道的一部分。
CodeQL 工作流
来源: .github/workflows/codeql.yml1-35
完整的部署工作流集成了构建系统、数据库迁移和应用程序启动。
Turbo 构建系统通过 turbo.json 中定义的任务来协调构建过程。 build 任务处理依赖关系解析并输出构建好的应用程序。
部署 RealWorld 应用程序后,验证所有组件是否正常运行非常重要。
您可以使用存储库中提供的 Postman 集合来验证 API 功能。有关更多信息,请参阅 API 测试。
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(6dc657)