mcpField
D
deploy-to-temps

deploy-to-temps

github.com/gotempshクラウド・DevOps87660 回インストール今日更新
リポジトリ

deploy-to-temps について

アプリを Temps にデプロイするためのガイドです。フレームワーク検出、ビルド設定、CLI と Git によるデプロイ手順に加え、環境変数、ロールバック、トラブルシューティングも扱います。

主な機能

  1. 01フレームワーク検出とビルドコマンド
  2. 02CLI と Git によるデプロイ案内
  3. 03Dockerfile 生成例
  4. 04環境変数とリソースの設定
  5. 05ロールバックと問題解決の案内

活用シーン

  1. 01対応アプリの Temps へのデプロイ
  2. 02Git の push を契機とするデプロイ設定
  3. 03デプロイのロールバックや問題調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gotempsh/temps --skill deploy-to-temps

インストール後、Claude Code で/deploy-to-tempsを入力して読み込まれたか確認します。

詳細

Temps にデプロイする

フレームワークを自動検出し、ビルドを最適化して、アプリケーションを Temps にデプロイします。

対応フレームワーク

フレームワーク検出方法ビルドコマンド
Next.jsnext.config.*next build
Vitevite.config.*vite build
Create React Apppackage.json の react-scriptsreact-scripts build
Remixremix.config.*remix build
Express/Node.js依存関係に expressnpm run build(存在する場合)
NestJS依存関係に @nestjs/corenest build
Python/Flaskrequirements.txt + app.py-
Python/Djangomanage.pypython manage.py collectstatic
Gogo.modgo build
RustCargo.tomlcargo build --release

クイックデプロイ

Git 統合を利用する
  1. Temps ダッシュボードで Git プロバイダーを接続します
  2. リポジトリとブランチを選択します
  3. 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 ベースのデプロイ

プッシュ時の自動デプロイ
  1. Temps ダッシュボードで「自動デプロイ」を有効にします
  2. 自動デプロイするブランチを選択します
  3. プッシュのたびに新しいデプロイが実行されます
プレビュー用デプロイ

「プレビュー用デプロイ」を有効にすると、各 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 イメージをローカルでビルドできることを確認します
  • デプロイログを確認します

コメント