关于 deploy-to-temps
这是一份将应用部署到 Temps 的指南,介绍框架检测、构建配置,以及 CLI 和 Git 部署流程,也涵盖环境变量、回滚与故障排查。
主要功能
- 01框架检测与构建命令
- 02CLI 和 Git 部署指引
- 03Dockerfile 生成示例
- 04环境与资源配置
- 05回滚和故障排查指引
适用场景
- 01将支持的应用部署到 Temps
- 02设置由 Git 推送触发的部署
- 03回滚部署或排查部署问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ gotempsh/ temps --skill deploy-to-temps安装后在 Claude Code 中输入/deploy-to-temps确认已加载。
详细介绍
部署到 Temps
通过自动框架检测和优化构建,将应用部署到 Temps。
支持的框架
| 框架 | 检测方式 | 构建命令 |
|---|---|---|
| Next.js | next.config.* | next build |
| Vite | vite.config.* | vite build |
| Create React App | package.json 中的 react-scripts | react-scripts build |
| Remix | remix.config.* | remix build |
| Express/Node.js | 依赖项中的 express | npm run build(如果存在) |
| NestJS | 依赖项中的 @nestjs/core | nest build |
| Python/Flask | requirements.txt + app.py | - |
| Python/Django | manage.py | python manage.py collectstatic |
| Go | go.mod | go build |
| Rust | Cargo.toml | cargo build --release |
快速部署
通过 Git 集成
- 在 Temps 控制面板中连接你的 Git 提供商
- 选择仓库和分支
- Temps 会自动检测框架并部署
通过 CLI
# Install Temps CLI
npm install -g @temps-sdk/cli
# Login
temps login
# Deploy current directory
temps deploy
# Deploy with specific settings
temps deploy --project my-app --branch main
Dockerfile 生成
Temps 会自动生成经过优化的 Dockerfile。如有自定义需求:
Next.js(独立模式)
FROM node:20-alpine AS base
FROM base AS deps
WORKDIR /app
COPY package*.json ./
RUN npm ci
FROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN npm run build
FROM base AS runner
WORKDIR /app
ENV NODE_ENV=production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
COPY --from=builder /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
USER nextjs
EXPOSE 3000
ENV PORT=3000
CMD ["node", "server.js"]
Node.js(Express/Fastify)
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
ENV NODE_ENV=production
USER node
EXPOSE 3000
CMD ["node", "dist/index.js"]
Python(Flask/FastAPI)
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
ENV PYTHONUNBUFFERED=1
EXPOSE 8000
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:8000", "app:app"]
Go
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o main .
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/main .
EXPOSE 8080
CMD ["./main"]
环境变量
在 Temps 控制面板中或通过 CLI 配置:
# Set environment variable
temps env set DATABASE_URL="postgres://..."
# Set from .env file
temps env import .env
# List variables
temps env list
构建配置
在项目根目录中创建 temps.json:
{
"name": "my-app",
"framework": "nextjs",
"buildCommand": "npm run build",
"installCommand": "npm ci",
"outputDirectory": ".next",
"nodeVersion": "20",
"env": {
"NODE_ENV": "production"
}
}
基于 Git 的部署
推送时自动部署
- 在 Temps 控制面板中启用“自动部署”
- 选择要自动部署的分支
- 每次推送都会触发新的部署
预览部署
启用“预览部署”后,每个 PR 都会生成唯一 URL。
部署钩子
为自定义 CI/CD 创建 Webhook:
curl -X POST https://your-temps.com/api/projects/123/deploy \
-H "Authorization: Bearer $TEMPS_DEPLOY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"branch": "main", "commit": "abc123"}'
回滚
# List deployments
temps deployments list
# Rollback to specific deployment
temps rollback --deployment-id 456
# Rollback to previous
temps rollback --previous
健康检查
在 temps.json 中配置健康检查:
{
"healthCheck": {
"path": "/api/health",
"interval": 30,
"timeout": 10,
"unhealthyThreshold": 3
}
}
资源配置
{
"resources": {
"cpu": "0.5",
"memory": "512Mi",
"replicas": {
"min": 1,
"max": 5
}
}
}
故障排除
构建失败?
- 检查控制面板中的构建日志
- 确认
buildCommand正确 - 确保所有依赖项都已列在 package.json 中
容器无法启动?
- 检查是否使用了
PORT环境变量 - 确认健康检查端点可用
- 查看容器日志
部署卡住?
- 检查是否超出资源限制
- 确认 Docker 镜像可在本地构建
- 查看部署日志
评论
支持 Markdown