deploy-to-temps について
アプリを Temps にデプロイするためのガイドです。フレームワーク検出、ビルド設定、CLI と Git によるデプロイ手順に加え、環境変数、ロールバック、トラブルシューティングも扱います。
主な機能
- 01フレームワーク検出とビルドコマンド
- 02CLI と Git によるデプロイ案内
- 03Dockerfile 生成例
- 04環境変数とリソースの設定
- 05ロールバックと問題解決の案内
活用シーン
- 01対応アプリの Temps へのデプロイ
- 02Git の push を契機とするデプロイ設定
- 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 対応