Przejdź do treści
Biblioteka skilli
DevOps i chmura · Automatyzacja

devops/deploy-render

/devops/deploy-render

Wdraża aplikacje full-stack na Render według pliku render.yaml, w tym usługi webowe, workery, strony i bazy.

Repozytorium
boss-skill ↗
Licencja
MIT
Ostatnia zmiana repozytorium
27.10.2026

Ocena i bezpieczeństwo

86/ 100Klasa: dobry
Format15 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność21 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
1
Przestarzałość

Brak sygnałów. Repozytorium zmienione 27.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Wdraża aplikacje full-stack na Render według pliku render.yaml, w tym usługi webowe, workery, strony i bazy.

Oryginalny opis (EN)

Render 部署方法论,使用 render.yaml 蓝图和 Render CLI 部署全栈应用(Web 服务、Worker、静态站点、数据库)

Jak działa

  1. 适用场景
  2. 前置条件
  3. 部署方式
  4. 一、render.yaml 蓝图
  5. 二、部署流程
  6. CI/CD 集成
  7. 项目类型适配
  8. 检查清单
Sekcje z nagłówków SKILL.md, w oryginale · 309 linii, 778 słów
Podgląd SKILL.md
---

name: devops/deploy-render
description: Render 部署方法论,使用 render.yaml 蓝图和 Render CLI 部署全栈应用(Web 服务、Worker、静态站点、数据库)
version: 1.0.0
agent: devops
type: methodology
user-invocable: false
agent-invocable: true
dependencies:
- shared/tech-stack-detection
  triggers:
- 需要部署到 Render 时
- 项目是全栈应用且需要数据库时
- 项目使用 Docker 容器部署时
  metadata:
  internal: true

---

# Render 部署

## 适用场景

- **全栈 Web 应用**:Node.js、Python、Go、Ruby、Rust 后端 + 数据库
- **静态站点**:前端 SPA、文档站点
- **后台 Worker**:异步任务处理、定时任务
- **Docker 化应用**:通过 Dockerfile 部署任意语言应用
- 需要托管 PostgreSQL/Redis 的场景

## 前置条件

1. Render 账号:https://render.com
2. 安装 Render CLI(可选,主要通过 render.yaml 蓝图管理)
3. 项目代码托管在 GitHub/GitLab/Bitbucket(Render 通过 Git 集成部署)

## 部署方式

Render 支持两种部署方式:
1. **render.yaml 蓝图(推荐)**:基础设施即代码,一键创建所有服务和数据库
2. **Dashboard 手动创建**:通过 Web 界面逐个创建服务

## 一、render.yaml 蓝图

`render.yaml` 放在项目根目录,定义所有基础设施。

### 完整示例(全栈应用)

```yaml
services:
  # 前端静态站点
  - type: web
    name: my-frontend
    env: static
    buildCommand: npm ci && npm run build
    staticPublishPath: dist
    routes:
      - type: rewrite
        source: /*
        destination: /index.html

  # 后端 API 服务
  - type: web
    name: my-api
    env: node
    buildCommand: npm ci && npm run build
    startCommand: npm start
    healthCheckPath: /health
    envVars:
      - key: NODE_ENV
        value: production
      - key: DATABASE_URL
        fromDatabase:
          name: my-db
          property: connectionString
      - key: API_KEY
        sync: false # 需要在 Dashboard 手动设置

  # 后台 Worker
  - type: worker
    name: my-worker
    env: node
    buildCommand: npm ci
    startCommand: npm run worker
    envVars:
      - key: DATABASE_URL
        fromDatabase:
          name: my-db
          property: connectionString

databases:
  - name: my-db
    databaseName: myapp
    user: myapp
    plan: free # free | starter | standard | pro
    ipAllowList:
      - source: 0.0.0.0/0
        description: allow all (仅开发环境)
```

### 各类型服务配置

#### 1. 静态站点

```yaml
services:
  - type: web
    name: my-site
    env: static
    buildCommand: npm run build
    staticPublishPath: dist
    headers:
      - path: /*
        name: X-Frame-Options
        value: DENY
```

#### 2. Node.js Web 服务

```yaml
services:
  - type: web
    name: my-api
    env: node
    plan: standard
    buildCommand: npm ci && npm run build
    startCommand: node dist/server.js
    healthCheckPath: /health
    autoDeploy: true
    branch: main
    numInstances: 1
```

#### 3. Docker 服务

```yaml
services:
  - type: web
    name: my-app
    env: docker
    dockerfilePath: ./Dockerfile
    dockerContext: .
    dockerCommand: ./start.sh
    healthCheckPath: /health
```

#### 4. Python Web 服务

```yaml
services:
  - type: web
    name: my-api
    env: python
    buildCommand: pip install -r requirements.txt
    startCommand: gunicorn app:app
    healthCheckPath: /health
```

#### 5. Go Web 服务

```yaml
services:
  - type: web
    name: my-api
    env: go
    buildCommand: go build -o server
    startCommand: ./server
    healthCheckPath: /health
```

#### 6. 后台 Worker

```yaml
services:
  - type: worker
    name: my-worker
    env: node
    buildCommand: npm ci
    startCommand: npm run worker
```

#### 7. 定时任务(Cron Job)

```yaml
services:
  - type: cron
    name: my-cron
    env: node
    schedule: "0 2 * * *" # 每天凌晨 2 点
    buildCommand: npm ci
    startCommand: npm run cron
```

### 数据库配置

```yaml
databases:
  - name: my-postgres
    databaseName: myapp
    user: myapp
    plan: starter
    version: "16"
    ipAllowList:
      - source: 10.0.0.0/8
        description: internal

  - name: my-redis
    type: redis
    plan: starter
    maxmemoryPolicy: allkeys-lru
```

### 环境变量

```yaml
envVars:
  # 静态值
  - key: NODE_ENV
    value: production

  # 从服务组同步(所有服务共享)
  - key: SHARED_KEY
    sync: true
    value: some-value

  # 从另一个服务获取
  - key: API_URL
    fromService:
      type: web
      name: my-api
      property: host

  # 从数据库获取连接串
  - key: DATABASE_URL
    fromDatabase:
      name: my-db
      property: connectionString

  # 需要手动设置的密钥
  - key: STRIPE_SECRET_KEY
    sync: false
```

## 二、部署流程

### 通过 Git 自动部署

1. 在 Render Dashboard 连接 Git 仓库
2. Render 自动检测 `render.yaml` 并创建服务
3. 每次 push 到指定分支自动触发部署

### 通过 CLI 触发部署

```bash
# 安装 Render CLI
npm install -g render-cli
# 或 brew install render

# 登录(需要用户交互)
render login

# 触发部署
render services deploy <service-id-or-name>

# 查看部署状态
render services list-deploys <service-id-or-name>
```

### 通过 API 触发部署(备选)

如需直接调用 Render REST API,请在受信任的 CI 环境中使用官方 GitHub Action,详见下方 CI/CD 集成。

## CI/CD 集成

### GitHub Actions 触发部署

使用 Render 官方 GitHub Action 触发部署:

```yaml
name: Deploy to Render
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npm ci
      - run: npm test
      - name: Trigger Render Deploy
        uses: renderinc/deploy-render-action@v1
        with:
          serviceId: ${{ secrets.RENDER_SERVICE_ID }}
          apiKey: ${{ secrets.RENDER_API_KEY }}
```

**需要的 Secrets**:
- `RENDER_API_KEY`:Render API Key(Account Settings → API Keys)
- `RENDER_SERVICE_ID`:服务 ID(Dashboard 服务页面 URL 中 `srv-xxx`)

## 项目类型适配

| 项目类型       | env 类型 | buildCommand                      | startCommand       |
| -------------- | -------- | --------------------------------- | ------------------ |
| Next.js (Node) | node     | `npm ci && npm run build`         | `npm start`        |
| Vite 静态站点  | static   | `npm ci && npm run build`         | -                  |
| Express API    | node     | `npm ci`                          | `npm start`        |
| Django         | python   | `pip install -r requirements.txt` | `gunicorn app:app` |
| FastAPI        | python   | `pip install -r requirements.txt` | `uvicorn main:app` |
| Gin (Go)       | go       | `go build -o server`              | `./server`         |
| Docker 应用    | docker   | (Dockerfile)                      | (Dockerfile CMD)   |

## 检查清单

- [ ] `render.yaml` 放在项目根目录
- [ ] 所有服务的 buildCommand 和 startCommand 正确
- [ ] 数据库已在 `databases` 中定义
- [ ] 环境变量已配置(敏感变量 `sync: false`)
- [ ] healthCheckPath 已配置(Web 服务)
- [ ] 静态站点配置了 SPA rewrite 路由(如需要)
- [ ] CI/CD 中 Render API Key 和 Service ID 已配置
- [ ] 部署日志无错误,服务状态为 "Live"

Wersje

W bazie nie ma innych skilli o nazwie devops/deploy-render.

Identyczna treść występuje jeszcze w 1 innych folderach na GitHubie. Tu pokazujemy jedną, najlepiej ocenioną kopię.

Migawka bazy z 28.10.2026 · wersja paczki 8a1d66306a8a (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 86devops/deploy-vercel
    Wdraża aplikacje frontendowe i full-stack na Vercel przez CLI, np. Next.js, React, Vue lub strony statyczne.
  • 100render
    Wdraża aplikacje webowe, API, strony statyczne, workery, zadania cron i Postgres na Render przez Blueprint render.yaml, w tym zmienne środowiskowe, auto-deploy z Gita, autoskalowanie i domeny.
  • 100render-deploy
    Wdraża aplikacje na Render: analizuje kod, generuje Blueprinty render.yaml i podaje linki do Dashboardu.
  • 90devops/deploy-cloudflare
    Wdraża strony Cloudflare Pages i funkcje Workers przez wrangler CLI, opisując metodykę krok po kroku.
  • 95render
    Wdraża i obsługuje aplikacje na Render przez Blueprint i link do Dashboard: render.yaml, usługi web, static, workery, cron, Postgres i Key Value, zmienne środowiskowe i wdrożenia przez API.
  • 100render-web-services
    Konfiguruje usługi webowe Render: wiązanie portów, TLS, health checki, domeny, auto-deploy i dyski trwałe.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.