mcpField
A
app-platform-migration

app-platform-migration

github.com/digitalocean-labsクラウド・DevOps3880 回インストール3 日前に更新
リポジトリ

app-platform-migration について

app-platform-migrationは、既存アプリをDigitalOcean App Platformへ移行するためのスキルです。複数のクラウドプラットフォームやDocker構成からの移行に向け、構成を分析して対応関係を示し、非互換項目を明らかにしたうえでアプリ仕様とチェックリストを作成します。

主な機能

  1. 01移行元と設定ファイルの検出
  2. 02アーキテクチャ分析とコンポーネントの対応付け
  3. 03App Platform仕様の生成
  4. 04移行チェックリストと環境変数テンプレートの作成
  5. 05非互換項目と移行上の制約の提示

活用シーン

  1. 01HerokuアプリのApp Platformへの移行
  2. 02Docker Composeアプリの移行
  3. 03Render、Railway、Fly.ioプロジェクトの評価
  4. 04AWS ECSまたはApp Runner移行の計画

インストール

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

$npx skills add https://github.com/digitalocean-labs/do-app-platform-skills --skill app-platform-migration

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
reference/
app-spec-generation.md
code-refactoring.md
platform-mappings.md
workflow-examples.md
reference/heroku/
heroku-addons.md
heroku-concepts.md
heroku-mapping.md
heroku-overview.md
heroku-workflows.md
scripts/
analyze_architecture.py
detect_platform.py
generate_app_spec.py
generate_checklist.py
templates/
env-mapping.md
service-mapping.md

詳細

App Platform 移行スキル

機能を誠実に評価しながら、既存のアプリケーションを DigitalOcean App Platform に移行します。

方針

このスキルは魔法の杖ではなく、誠実なパートナーです。次のことを行います。

  1. 変更を提案する前に徹底的に分析します
  2. 自信を持って対応できるものをマッピングします
  3. 不足している点を明確かつ具体的に示します
  4. 不確かな場合は、作業を進める前に確認します
  5. 推測したり、互換性の問題を無視したりしません

ヒント:複雑な複数手順の移行では、まず planner スキルを使用してください。利用可能なすべてのスキルについては、ルートの SKILL.md を参照してください。


クイック判断

What's your source platform?
├── Heroku (Procfile, app.json, heroku.yml) → See Heroku Deep Chapter below
├── Docker Compose → See Quick Start below
├── Render/Railway/Fly.io → See Quick Start below
├── AWS ECS/App Runner → Complex migration, see reference
└── Just Dockerfile → See Quick Start below

対応プラットフォーム

プラットフォーム設定ファイル対応レベル
HerokuProcfile, app.json, heroku.yml完全対応(詳細な章を参照)
Docker Composedocker-compose.yml完全対応
Renderrender.yaml完全対応
Railwayrailway.json, railway.toml完全対応
Fly.iofly.toml完全対応
AWS ECSTask Definition JSON部分対応
AWS App Runnerapprunner.yaml部分対応
一般的な DockerDockerfile のみ完全対応

移行ワークフロー

Phase 1: DISCOVERY
├── Clone/access repository
├── Detect source platform
├── Analyze architecture
└── Inventory all services

Phase 2: MAPPING
├── Map services → App Platform components
├── Map databases → Managed databases
├── Map storage → Spaces
├── Map secrets → GitHub Secrets
└── Identify unmappable items → REPORT TO USER

Phase 3: REFACTORING
├── Create target branch(es)
├── Update environment variables
├── Remove platform-specific code
├── Update Dockerfile if needed
└── Generate app spec

Phase 4: VALIDATION
├── Validate: doctl apps spec validate
├── Review changes with user
└── Generate migration checklist

Phase 5: HANDOFF
├── Push branches to repo
├── Provide manual steps checklist
└── Suggest deployment skill

クイックスタート

基本的な移行
# User provides repo URL
"Migrate this app to App Platform: https://github.com/myorg/myapp"

# AI will:
# 1. Clone and analyze
# 2. Detect platform
# 3. Present mapping proposal
# 4. Ask for approval
# 5. Create branch with refactored code + app spec
ブランチを指定する場合
"Migrate my Heroku app. Put test config in 'migrate/test', prod in 'migrate/prod'"

ワークフローの全例:workflow-examples.md を参照してください。


Heroku からの移行(詳細な章)

Heroku 固有の移行については、Procfile、app.json、heroku.yml、ビルドパック、パイプライン、アドオン、CLI のマッピングに関する詳しい知識をまとめた包括的な章を用意しています。

最初に読むもの:heroku-overview.md を読み、移行モード(Q&A、ガイド付き、自動移行)を確認してから、案内に従って次の資料を参照してください。

  • heroku-concepts.md — Heroku 設定ファイルのスキーマ、CLI コマンド、ビルドパックの検出、パイプライン構成
  • heroku-mapping.md — コンポーネントの種類、ビルド設定、環境変数、インスタンスサイズ、ネットワーク、リージョン
  • heroku-addons.md — app.json からのアドオン検出、DO マネージドサービスに相当するもの、外部の代替サービス
  • heroku-workflows.md — Q&A、ガイド付き、自動移行モードの手順
クイックマッピング(Heroku)
HerokuApp Platform
web プロセスservices
worker プロセスworkers
release フェーズjobs(PRE_DEPLOY)
heroku-postgresqlManaged Postgres
heroku-redisManaged Valkey
Config VarsGitHub Secrets
PipelinesGitHub Actions
Review Appsプレビュー環境
Heroku Schedulerjobs(CRON_TRIGGER)

マッピングの全容:heroku-mapping.md を参照してください。


クイックマッピングリファレンス

Docker Compose
Docker ComposeApp Platform
services.<name>.portsservices
services.<name>(ポートなし)workers
services.postgresManaged Postgres
services.redisManaged Valkey
volumesSpaces(永続ボリュームはありません)

マッピング表の全容:platform-mappings.md を参照してください。


マッピングできない項目(クイックリファレンス)

移行元問題選択肢
CloudFront CDNDO CDN なし外部 CDN(Cloudflare)を使用するか、スキップ
AWS Secrets Managerモデルが異なるGitHub Secrets
永続ボリューム非対応ファイルには Spaces、データにはマネージド DB
ARM コンテナAMD64 のみAMD64 向けに再ビルド

全項目の一覧:platform-mappings.md を参照してください。


出力アーティファクト

ファイル用途
.do/app.yamlApp Platform の仕様
.do/deploy.template.yamlDO へデプロイボタン
MIGRATION.md移行チェックリストとステータス
.env.example環境変数テンプレート

アプリ仕様テンプレート:app-spec-generation.md を参照してください。


スクリプト

スクリプト用途
scripts/detect_platform.pyファイルから移行元プラットフォームを検出
scripts/analyze_architecture.pyアプリケーションアーキテクチャを分析
scripts/generate_app_spec.py.do/app.yaml を生成
scripts/generate_checklist.py移行チェックリストを生成

リファレンスファイル

Heroku(詳細編)
  • heroku-overview.md - 入り口:Heroku から移行する場合は最初にお読みください
  • heroku-concepts.md - Procfile、app.json、heroku.yml、パイプライン、CLI
  • heroku-mapping.md - Heroku から App Platform への機能マッピングの詳細
  • heroku-addons.md - アドオンエコシステムのマッピング(Postgres、Redis など)
  • heroku-workflows.md - 移行ワークフロー:Q&A、ガイド付き、自動移行
一般

よくある問題(簡単な修正方法)

問題原因修正方法
アプリ仕様の検証に失敗する無効な YAMLインデントと doctl apps spec validate を確認してください
データベース接続に失敗するURL 形式が正しくない${db.DATABASE_URL} バインディングを使用してください
ビルドに失敗する依存関係が不足しているDockerfile のビルド依存関係を確認してください
ポートのバインドに失敗するPORT の処理が正しくない$PORT または 0.0.0.0:8080 にバインドしてください
ヘルスチェックに失敗するパスが正しくない/health エンドポイントが存在することを確認してください

トラブルシューティングの詳細:code-refactoring.md を参照してください。


他のスキルとの連携

  • → deployment:移行後の GitHub Actions ワークフロー
  • → postgres:複雑なデータベース設定、スキーマの分離
  • → devcontainers:移行後のローカル開発環境
  • → troubleshooting:移行に関する問題をデバッグするためのコンテナ

ドキュメントへのリンク

コメント