メインコンテンツまでスキップ

Extend Dev Containersを使った開発

Last updated on July 14, 2026

注釈:本資料はAI技術を用いて翻訳されています。

Overview

Dev Containersは、ローカルマシンに開発ツールを手動でインストール・設定する必要をなくす、Extendアプリの代替開発ワークフローです。コンテナ化された開発環境を使用することで、異なるオペレーティングシステムやチームメンバー間で一貫性を確保しつつ、セットアップの複雑さや環境関連の問題を軽減できます。

このガイドでは、ExtendアプリテンプレートでのDev Containersの使用方法(セットアップ、ワークフロー、ベストプラクティスを含む)について説明します。Dev Containersは、一貫した環境を求めるチーム、Extendアプリ開発に不慣れな開発者、クロスプラットフォーム開発チームにとって特に有用です。

注記

Dev Containersは、Extendアプリ開発ワークフローで説明されている従来の開発ワークフローの代替手段です。どちらの方法でも同じ結果を得られますが、Dev Containersはより分離された一貫性のある環境を提供します。

Prerequisites

ExtendアプリでDev Containersを使用する前に、以下がインストールされていることを確認してください。

ヒント

Dev Containersは、GitHub CodespacesなどのDev Containers仕様をサポートする他のIDEでも動作します。ワークフローはどの環境でもほぼ共通しています。

Dev Containers Workflow

これらの手順のクイックスタート版だけが必要な場合は、Dev Containersワークフローの概要を参照してください。以下のセクションでは、各手順を詳しく説明します。

1. Extendアプリテンプレートをクローンする

まず、GitHubからExtendアプリテンプレートをクローンします。テンプレートには既にDev Containerの設定ファイル(.devcontainer/devcontainer.json)が含まれているため、追加のセットアップは不要です。

git clone https://github.com/AccelByte/extend-service-extension-go
cd extend-service-extension-go

Dev Container Support

言語や用途に応じて、公式のExtendアプリテンプレートのいずれかを使用できます。利用可能なテンプレートの完全な一覧については、以下のドキュメントページを参照してください。

Go、Python、C#のすべてのテンプレートにはDev Containerのサポートが含まれています。JavaテンプレートにはDev Containerのサポートはなく、現時点で追加する予定もありません。

2. VS CodeでDev Containersを開く

  1. VS Codeでプロジェクトフォルダを開きます。

    code .
  2. VS Codeが.devcontainerフォルダを検出すると、フォルダをコンテナで再度開くよう促されます。プロンプトが表示されたらReopen in Containerをクリックしてください。

    または、以下の手順で手動でトリガーすることもできます。

    • Ctrl+Shift+P(macOSではCmd+Shift+P)を押す
    • Dev Containers: Reopen in Containerと入力する
    • コマンドを選択する
  3. VS Codeが開発コンテナをビルドして起動します。ベースイメージのダウンロードと依存関係のインストールが行われるため、初回はこの処理に数分かかる場合があります。

注記

Dev Containerの設定には、以下のような必要なツールがすべて事前にインストールされています。

  • Bash
  • Make
  • 言語固有のビルドツール(テンプレートに応じてGo、Python、Java、または.NET)
  • Docker-in-Dockerサポート(コンテナイメージのビルドが必要な場合)
  • 開発用の依存関係
  • Extend Helper CLI

GitHub Codespacesの使用

インストール不要のアプローチを希望しますか?GitHub上のテンプレートリポジトリを開き、CodeCodespacesCreate codespaceを選択すると、GitHub Codespacesがクラウド上に同じ.devcontainer環境を構築します。ローカルでDockerを実行しなくても、同一のツール、VS Code設定、MCP設定を利用できます。

3. 開発環境のセットアップ

コンテナが実行されると、開発環境は自動的に構成されます。

  • 事前設定済みのツール: 必要な開発ツールがすべてインストールされ、すぐに使用できる状態になります
  • 環境変数: コンテナには開発に必要な環境変数が含まれています
  • ボリュームマウント: プロジェクトファイルがコンテナにマウントされるため、変更はすぐに反映されます
  • 拡張機能: Dev Containerの設定で指定されたVS Code拡張機能が自動的にインストールされます
  • VS Code設定ファイル: Extendアプリテンプレートには、一般的な操作用のtasks.json、デバッグ用のlaunch.json、Model Context Protocol(MCP)サーバーを介したAI支援開発用のmcp.jsonなど、事前設定済みのVS Codeファイルが含まれています
注記

mcp.jsonで設定されたMCPサーバーを使用するには、VS Codeで設定が必要になる場合があります。詳細なセットアップ手順については、VS Code MCPドキュメントMCPサーバーガイドを参照してください。共有MCP設定ファイルは、Extendアプリテンプレート内のmcp.jsonで確認できます。

インストール済みのツールを確認することで、環境が正しく設定されているかどうかを検証できます。

bash --version
make --version
docker --version
extend-helper-cli --help

4. ビルドとテスト

Dev Containerが実行されている状態で、従来のワークフローと同じコマンドを使用してExtendアプリをビルド・テストできます。

# アプリケーションをビルドする
make build

# テストを実行する
make test

# gRPCコードを生成する
make proto

ビルドプロセスは従来のワークフローと完全に同じですが、すべて分離されたコンテナ環境の中で実行されます。

5. カスタマイズ

従来のワークフローと同じ手順に従って、Extendアプリをカスタマイズします。

  1. gRPCサービス定義の変更: .protoファイルを編集して、サービスメソッドを定義します
  2. gRPCメソッドの実装: 適切な言語でビジネスロジックを記述します
  3. 依存関係の追加: 依存関係ファイル(go.modrequirements.txtbuild.gradleまたはpom.xml*.csprojなど)を更新します
  4. 環境変数の設定: 必要に応じて変数とシークレットを設定します

カスタマイズのプロセスは従来のワークフローと同一であり、異なるのは開発環境のみです。

ヒント

Dev Container自体をカスタマイズする必要がある場合(追加のツールを追加する、ベースイメージを変更するなど)は、.devcontainer/devcontainer.jsonファイルを編集してください。変更は、コンテナを再ビルドすると反映されます。

6. デプロイ

デプロイは従来のワークフローと同じプロセスに従います。

  1. コンテナイメージをビルドする:

    docker build -t your-app:latest .
  2. AccelByte Gaming Servicesにプッシュする:

    • VS Codeタスクを使用する方法(推奨): extend-helper-cliを使用してイメージをアップロードする事前設定済みのVS Codeタスクを使用します。これらのタスクはExtendアプリテンプレートで利用可能で、コマンドを手動で入力せずにextend-helper-cliを使用できます。アクセス方法は以下の通りです。
      • Ctrl+Shift+P(macOSではCmd+Shift+P)を押す
      • Tasks: Run Taskと入力する
      • Extend: Create AppExtend: Login to DockerExtend: Build and Upload ImageExtend: Deployなどのタスクを選択する
    • extend-helper-cliを直接使用する方法: ターミナルでコマンドを手動で実行します
  3. Admin Portalからデプロイする:

    • Admin PortalでExtendアプリに移動する
    • 変数とシークレットを設定する
    • アプリをデプロイする
ヒント

Extendアプリテンプレートには、extend-helper-cliの使用を簡素化するVS Codeタスクが含まれています。これらのタスクは、アプリの作成、イメージのビルドとアップロード、アプリのデプロイ、アプリのライフサイクル管理などの一般的な操作を処理します。利用可能なタスクの全一覧については、テンプレート内の.vscode/tasks.jsonファイルを参照してください。

詳細なデプロイ手順については、各Extendアプリタイプのガイドを参照してください。

Dev Containersのメリット

Extendアプリ開発でDev Containersを使用すると、以下のような複数のメリットがあります。

  • 一貫した環境: チームメンバー全員が同一の開発環境で作業するため、「自分のマシンでは動く」という問題を軽減できます
  • セットアップの複雑さの軽減: Bash、Make、Docker、言語固有のツールを手動でインストールする必要がありません
  • クロスプラットフォームの互換性: Linux、Windows、macOSでシームレスに動作します
  • 分離された環境: 開発ツールがホストシステムに影響を与えません
  • 簡単なリセット: コンテナを再ビルドすることで、いつでもクリーンな環境を取得できます
  • バージョン管理: Dev Containerの設定はプロジェクトと共にバージョン管理されます

Dev Containersを使用すべき場合

以下のような場合にDev Containersの使用を検討してください。

  • チーム全体で一貫した開発環境を求める場合
  • Extendアプリ開発に不慣れで、セットアップの複雑さを避けたい場合
  • 異なるツール要件を持つ複数のプロジェクトに取り組んでいる場合
  • 開発ツールをホストシステムから分離したい場合
  • WindowsでWSL2の複雑さなしにLinuxライクな環境で開発したい場合

Dev Containerのカスタマイズ

Dev Containerの設定は.devcontainer/devcontainer.jsonにあります。以下のようにカスタマイズできます。

  • ベースイメージの変更
  • 追加のツールやパッケージのインストール
  • 環境変数の設定
  • ポートフォワーディングの設定
  • 追加のVS Code拡張機能のインストール

.devcontainer/devcontainer.jsonの例:

{
"name": "Example Dev Container",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
},
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.go",
"golang.go"
]
}
},
"forwardPorts": [8080, 9090],
"postCreateCommand": "make install"
}

設定を変更した後は、コンテナを再ビルドしてください。

  • Ctrl+Shift+P(macOSではCmd+Shift+P)を押す
  • Dev Containers: Rebuild Containerと入力する
  • コマンドを選択する

Troubleshooting

コンテナが起動しない場合

  • Docker Desktopが実行されていることを確認する
  • Dockerのログを確認する: docker ps -aでコンテナの状態を確認できます
  • .devcontainer/devcontainer.jsonファイルが有効なJSONであることを確認する

ビルドコマンドが失敗する場合

  • コンテナ内にいることを確認する(VS Codeのステータスバーで確認できます)
  • すべての依存関係がインストールされていることを確認するため、コンテナを再ビルドする
  • Dev Containerに必要なツールがインストールされていることを確認する

パフォーマンスの問題

  • Docker Desktopにより多くのリソース(CPUとメモリ)を割り当てる
  • ボリュームマウントを効率的に使用する(不要な場合はnode_modules.gitなどを除外する)
  • より軽量なベースイメージの使用を検討する

ポートフォワーディングの問題

  • ポートがdevcontainer.jsonで正しく設定されていることを確認する
  • 他のサービスが同じポートを使用していないことを確認する
  • ファイアウォールの設定でポートフォワーディングが許可されていることを確認する

Integration with Existing Workflows

Dev Containersは以下とシームレスに連携します。

  • Git: すべてのGit操作はコンテナ内でも通常通り動作します
  • CI/CD: CI/CDパイプラインは変更なしで使用できます
  • extend-helper-cli: コンテナ内でも同じ方法で動作します
  • Dockerビルド: Docker-in-Dockerサポートにより、コンテナ内からイメージをビルドできます

Next Steps

Dev Container環境をセットアップした後は、以下を行ってください。

  1. 両方のワークフローの整合性を保つため、Extendアプリ開発ワークフローを確認する。
  2. 使用ケースに応じて、該当するExtendアプリタイプのガイドに従う。
  3. MCPサーバーガイドに従ってAI支援を設定する。両方のガイドは同じ.vscode/mcp.jsonを参照しています。
  4. 高度なトピックについて学ぶ。
  5. GitHub上の公式テンプレート(例: extend-service-extension-go)を確認し、精選された.devcontainer.vscodeのアセットを再利用する。
  6. Extendアプリタイプのガイドに記載されている手順に従って、IAMクライアントの権限を設定し、変数/シークレットを構成する。

Dev Containersを使用することで、一貫性のある分離された開発環境が得られ、Extendアプリ開発をよりスムーズかつ確実に行えます。