概要
本ガイドは、Docker を利用して intra-mart Accel Platform(iAP) の開発環境を構築する手順をまとめたものです。 Docker や iAP の構築経験がない場合でも、順を追って読み進めれば動作する環境を構築できます。
AIネイティブ開発を行うにあたり、Dockerを活用した環境構築は必須ではありません。
コンテナを利用せずにiAPを構築し、AIネイティブ開発を実践することも可能ですが、Dockerを活用することで、環境構築の手間を大幅に削減でき、プロジェクトチーム内における環境の共有、DevOpsへの展開などが容易になる利点があります。
AIネイティブ開発支援機能 もDockerを活用した環境にデフォルトで組み込まれており、Dockerを活用することで、よりスムーズにAIネイティブ開発を実践できます。
Docker で構築する利点
iAP の開発環境は、従来は OS 上に直接 Resin・データベース(PostgreSQL/Oracle/SQL Server)・Solr・Cassandra などをインストールして構築するのが一般的でした。 本ガイドでは、これらをすべて Docker コンテナとして構築します。
Docker を活用することには、次のような利点があります。
- 構築・破棄が速い: 環境の再構築が
docker compose up/downの単位で完結します。手作業によるミドルウェアの個別インストールが不要です。 - 環境を統一できる: 同じ
compose.yamlを共有することで、メンバー間の環境差分を最小化できます。 - ホスト OS を汚さない: ミドルウェアやランタイムをコンテナ内に閉じ込めるため、ホスト OS への影響が局所化されます。
- 複数バージョンの環境を併存できる: 各環境が分離されるため、別バージョンや別 DB の iAP 環境を同じホスト上で管理し、用途に応じて使い分けられます。
- 開発サイクルが短い: 壊して作り直すことを前提にできるため、検証作業を躊躇なく進められます。
- エージェントとの相性が良い: 環境の再現性が高いため、エージェントによる自動構築・自動テスト等のワークフローと組み合わせやすい特長があります。
本ガイドでできること
本ガイドでは、以下を達成することをゴールとします。
- Docker 環境上に iAP 開発環境を構築し、テナントの作成(テナント環境セットアップ)を行ってログインできる状態にすること。
- 構築した環境を、利用者の目的に合わせてカスタマイズできるようになること(任意の IM-Juggling プロジェクトや、ユーザモジュール(imm ファイル)の追加適用等)。
用途と制約
本ガイドで構築する Docker 環境は、開発・検証・E2E テスト等のステージング用途を想定した「参考資材」です。次の点にご留意ください。
- 本番運用は想定していません。本番環境では、用途やセキュリティ要件に応じた構成を別途検討してください。
- 永続化データ(
data/配下)の冗長化・バックアップ等は組み込んでいません。 - 構成は変更可能ですが、改変した構成は利用者の責任で運用してください。
対象読者
本ガイドは、Docker を用いた iAP 開発環境を構築したい以下の方を対象としています。
- Docker を利用したことがない、または Docker での iAP 構築経験がない方。
- 手元の PC(Windows / macOS / Linux)に開発・検証用の iAP 環境を用意したい方。
前提知識
本ガイドを読み進めるにあたっての前提知識(コマンドライン操作、Web ブラウザでの基本操作、Git の基本操作)は 前提知識 にまとめています。
Docker そのものの知識は前提としません。本ガイド中で頻出する用語は Docker の基本用語 にまとめています。より深く学びたい場合は、Docker 公式ドキュメント を併せてご参照ください。
Docker の基本用語
本ガイドで頻出する Docker 関連の用語について解説します。すでにご存じの方は読み飛ばして問題ありません。
基本概念
| 用語 | 説明 |
|---|---|
| Docker | アプリケーションを「コンテナ」と呼ばれる軽量な仮想環境にパッケージ化して実行するためのプラットフォームです。OS への直接インストールが不要になり、環境を素早く構築・破棄できます。 |
| Docker Desktop | Windows / macOS / Linux 上に Docker 環境を簡単に導入できる公式アプリケーションです。本書ではこれを利用して Docker 環境を構築します。 |
コンテナとイメージ
| 用語 | 説明 |
|---|---|
| イメージ(image) | コンテナを起動するためのテンプレート(雛形)です。OS のファイル一式、インストール済みソフトウェア、初期設定をひとまとめにしたパッケージで、同じイメージから何度でも同じ状態のコンテナを起動できます。本書では Resin・Apache HTTPd・データベース等の各サービスごとにイメージを用意します。 |
| コンテナ(container) | イメージから起動した、隔離された実行環境です。1 つのコンテナが 1 つのサービス(例: Apache HTTPd、Resin)として動作します。停止・破棄してもイメージから再度同じ状態で起動できます。 |
| ビルド(build) | Dockerfile(イメージの作成手順を記述したテキストファイル)に従って、イメージを生成する処理です。本書では docker compose build コマンドを使います。 |
複数コンテナの管理(Docker Compose)
| 用語 | 説明 |
|---|---|
| Docker Compose | 複数のコンテナをまとめて定義・起動・停止できる Docker の機能です。本書では Apache HTTPd・Resin・データベース等、複数のコンテナを一括で扱うために利用します。docker compose ... というコマンドで操作します。 |
| compose.yaml | Docker Compose の設定ファイルです。どのサービスを、どのイメージから、どのポートで起動するか等を YAML 形式で記述します。本書のリポジトリではあらかじめ用意されています。 |
| サービス(service) | compose.yaml で定義される 1 つのコンテナの単位です。本書では httpd / resin / postgresql / solr / cassandra / mailpit などが各サービスに該当します。 |
イメージの取得元
| 用語 | 説明 |
|---|---|
| Docker Hub | Docker の公式コンテナイメージレジストリ(イメージの配布元)です。docker compose up の実行時に必要なイメージが手元になければ、自動的に Docker Hub からダウンロード(後述の「pull」)されます。 |
| pull | リモートのレジストリ(Docker Hub 等)からイメージをダウンロードして手元に取得する操作です。本書では明示的に docker pull を実行することはなく、docker compose up の中で必要に応じて自動的に行われます。 |
データの永続化
| 用語 | 説明 |
|---|---|
| マウント | コンテナ内のディレクトリと、ホスト PC 上のディレクトリを紐付ける仕組みです。コンテナ内で書き込まれた内容を、ホスト PC 上のファイルとして見たり、その逆を行ったりできます。本書では data/ 配下のディレクトリを各コンテナにマウントしています。 |
| 永続化 | コンテナを停止・破棄してもデータが失われないようにすることです。本書ではマウントを利用し、データベースのデータや iAP のログ等をホスト PC 上の data/ 配下に保持しています。これにより、コンテナを破棄してもデータが残り、再起動時に同じ状態から続行できます。 |
本書では、上記の用語を「使えるようになるための最低限の範囲」で説明しています。各概念をより詳しく学びたい場合は、Docker 公式ドキュメント もご参照ください。
構成の選択
本ガイドでは、用途に合わせて次の 2 種類の構成から選択できます。
- スタンドアロン構成: Resin 1 サービスでの標準的な構成です。単体での動作確認、機能開発、検証に向いています。詳細は スタンドアロン構成 を参照してください。
- クラスタ構成: Resin 2 サービス + Apache HTTPd でのロードバランシング構成です。複数ノード構成での動作確認や、セッション同期・分散時の挙動確認に向いています。詳細は クラスタ構成 を参照してください。
構成の比較と、リポジトリ・ブランチ(iAP バージョン × DB)の選び方は 事前準備 にまとめています。特にクラスタ環境での挙動確認を必要としない場合は、スタンドアロン構成で問題ありません。
セットアップの流れ
事前準備 のソフトウェア導入が完了している前提で、選択した構成に対して以下の手順を実施します。
各手順のうち構成に依存しない共通部分は 共通セットアップ手順 にまとめています。構成ごとに異なる構成図・サービス一覧・URL / ポート番号一覧は、スタンドアロン構成 / クラスタ構成 を参照してください。動作確認の手順は 動作確認 にまとめています。
Accel Studio テスト機能を利用したい場合は、iAP のセットアップ完了後に追加のセットアップが必要です。Accel Studio テスト機能のセットアップ の手順に沿って実施してください。