跳转至

DigitalOcean App Platform

一句话概述:DigitalOcean App Platform 是 DO 的 PaaS 服务,从 GitHub 自动构建部署应用,支持容器和 Serverless 函数,比直接管 Droplet(VPS)简单得多,适合中小项目。

核心知识点

概念白话解释
App PlatformDO 的托管应用平台,类似 Heroku
Component应用的组成部分:Service、Worker、Job、Static Site、Function
App SpecYAML 格式的应用定义文件
Managed DatabaseDO 托管的数据库(PostgreSQL/MySQL/Redis/MongoDB)
DropletDO 的 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 invalidYAML 格式错误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 文档