一句话概述:DigitalOcean App Platform 是 DO 的 PaaS 服务,从 GitHub 自动构建部署应用,支持容器和 Serverless 函数,比直接管 Droplet(VPS)简单得多,适合中小项目。
核心知识点
| 概念 | 白话解释 |
|---|
| App Platform | DO 的托管应用平台,类似 Heroku |
| Component | 应用的组成部分:Service、Worker、Job、Static Site、Function |
| App Spec | YAML 格式的应用定义文件 |
| Managed Database | DO 托管的数据库(PostgreSQL/MySQL/Redis/MongoDB) |
| Droplet | DO 的 VPS(虚拟服务器),App Platform 底层用的就是 Droplet |
安装配置
# 安装 doctl CLI
# macOS
brew install doctl
# Linux
snap install doctl
# 认证
doctl auth init # 输入 API Token
# 创建应用
doctl apps create --spec app-spec.yaml # 从配置文件创建
App Spec 配置
# .do/app.yaml
name: my-app
region: sgp # 区域:新加坡
services:
- name: api # API 服务
github:
repo: username/my-app # GitHub 仓库
branch: main
deploy_on_push: true # 推送自动部署
build_command: npm run build # 构建命令
run_command: npm start # 启动命令
environment_slug: node-js # 运行时
instance_count: 1 # 实例数
instance_size_slug: apps-s-1vcpu-0.5gb # 实例规格
http_port: 3000 # HTTP 端口
envs:
- key: NODE_ENV
value: production
- key: DATABASE_URL
scope: RUN_TIME # 运行时可用
value: ${db.DATABASE_URL} # 引用数据库组件
static_sites:
- name: frontend # 静态前端
github:
repo: username/frontend
branch: main
build_command: npm run build
output_dir: dist # 构建输出目录
databases:
- name: db
engine: PG # PostgreSQL
version: "15"
size: db-s-dev-database # 开发版(免费)
基本使用
通过网页部署
1. https://cloud.digitalocean.com/apps → Create App
2. 选择来源:GitHub / GitLab / DockerHub / 容器仓库
3. 选择仓库和分支
4. 配置资源大小和环境变量
5. Review → Create Resources
CLI 操作
doctl apps list # 列出所有应用
doctl apps create --spec .do/app.yaml # 创建应用
doctl apps update <app-id> --spec .do/app.yaml # 更新应用
doctl apps logs <app-id> # 查看日志
doctl apps logs <app-id> --follow # 实时日志
常见报错
| 报错信息 | 原因 | 解决方案 |
|---|
Build failed | 构建命令错误 | 检查 build_command |
Port mismatch | 端口配置不对 | 确保 http_port 和应用监听端口一致 |
App spec invalid | YAML 格式错误 | 用 doctl apps spec validate 验证 |
Resource limit exceeded | 超出套餐限制 | 升级套餐或优化资源 |
速查表
doctl apps list # 列出应用
doctl apps create --spec spec.yaml # 创建
doctl apps update <id> --spec spec.yaml # 更新
doctl apps logs <id> # 日志
doctl apps spec validate spec.yaml # 验证配置
# 定价
# Starter(静态站点): 免费,3 个站点
# Basic: $5/月起
# Professional: $12/月起
# 数据库: $7/月起(PostgreSQL/MySQL)
参考:DO App Platform | App Spec 文档