オンプレミスコンテナモードでは、Alibaba Cloud Toolkitプラグインは、オンプレミス環境でコンテナを起動し、そのコンテナ内でマイクロサービスアプリケーションを実行します。このトピックでは、オンプレミスコンテナモードを構成する方法について説明します。
背景情報
オンプレミスコンテナモードには、次の利点があります。
Java 以外のマイクロサービスアプリケーションがサポートされています。
オンプレミスのマイクロサービスアプリケーションは、本番環境のコンテナと同じオペレーティングシステムを使用するオンプレミスコンテナで実行できます。
たとえば、オンプレミス環境で Windows オペレーティングシステムを使用してアプリケーションを開発し、本番環境で Linux オペレーティングシステムを使用してアプリケーションを実行する場合、オンプレミスコンテナモードを使用して、オンプレミス環境で Linux コンテナを実行し、その Linux コンテナ内でマイクロサービスアプリケーションを実行できます。
次の図は、オンプレミスコンテナモードが使用される全体的なアーキテクチャを示しています。

手順 1:オンプレミスコンテナモードを設定する
IntelliJ IDEA を起動します。
メインメニューバーで、 を選択します。
[実行/デバッグ構成] ダイアログボックスで、左上隅にあるプラス記号 ([+]) をクリックします。左側のナビゲーションペインで、[alibaba マイクロサービスコンテナ] を展開し、オンプレミスコンテナの名前をクリックします。次に、右側のペインで、オンプレミスコンテナに関連するパラメータを設定します。

パラメータ
説明
名前
オンプレミスコンテナの名前を入力します。
サーバー
[サーバー] ドロップダウンリストから Docker デーモンプロセスを選択します。Alibaba Cloud Toolkit プラグインは、ローカルの Docker デーモンプロセスのみをサポートしています。パラメータ値は [ローカル Docker サーバー] に固定されており、変更できません。
アプリケーションタイプ
[アプリケーションタイプ] ドロップダウンリストからアプリケーションタイプを選択します。ドロップダウンリストから [イメージ] を選択した場合、Alibaba Cloud Toolkit プラグインは、定義したオンプレミスコンテナイメージを使用してマイクロサービスコンテナを実行します。ドロップダウンリストから別のアプリケーションタイプを選択した場合、Alibaba Cloud Toolkit プラグインは、デフォルトコンテナを使用してマイクロサービスアプリケーションを実行します。有効な値:
Java:アプリケーションが Spring Cloud または Dubbo マイクロサービスフレームワークに基づいて開発された Java アプリケーションであり、パッケージ形式が JAR の場合は、このオプションを選択できます。
Tomcat:アプリケーションが Spring Cloud または Dubbo マイクロサービスフレームワークに基づいて開発された Java アプリケーションであり、パッケージ形式が WAR の場合は、このオプションを選択できます。
HSF-Container:アプリケーションが High-speed Service Framework(HSF)マイクロサービスフレームワークに基づいて開発された Java アプリケーションであり、パッケージ形式が JAR または WAR の場合は、このオプションを選択できます。
イメージ:カスタムマイクロサービスコンテナを実行する場合は、このオプションを選択できます。
アーティファクト
マイクロサービスアプリケーションパッケージのソースを選択します。[アプリケーションタイプ] ドロップダウンリストから [イメージ] を選択していない場合にのみ、このパラメータは有効です。有効な値:
Maven ビルド:Maven を使用して、オンプレミス環境の指定されたサービスモジュールでプロジェクトをビルドします。アプリケーションは、プロジェクトで作成されたパッケージに基づいて実行されます。[maven ビルド] を選択した場合は、手動で Maven プロジェクトを作成する必要があります。詳細については、「Maven プロジェクトの説明」をご参照ください。
ファイルを使用:指定されたローカルファイルが、アプリケーションを実行するためのアプリケーションパッケージとして使用されます。
イメージ ID または名前
カスタムコンテナイメージの ID または名前を入力します。[アプリケーションタイプ] ドロップダウンリストから [イメージ] を選択した場合にのみ、このパラメータは有効です。
エントリポイント
コンテナイメージのエントリポイントを入力します。[アプリケーションタイプ] ドロップダウンリストから [イメージ] を選択した場合にのみ、このパラメータは有効です。このパラメータを設定すると、指定したエントリポイントによって、カスタムコンテナイメージのエントリポイントが上書きされます。
コマンド
コンテナイメージのコマンドを入力します。[アプリケーションタイプ] ドロップダウンリストから [イメージ] を選択した場合にのみ、このパラメータは有効です。このパラメータを設定すると、指定したコマンドによって、カスタムコンテナイメージのコマンドが上書きされます。
バインドポート
ホストポートとコンテナポート間のマッピングを指定します。値は、<ホストポート番号>:<コンテナポート番号> 形式です。複数のポートマッピングはスペースで区切ります。このパラメータを設定すると、ホストポートを使用して、マッピングされたコンテナポートにアクセスできます。
説明デフォルトでは、Alibaba Cloud Toolkit プラグインは、Spring Cloud サービスポートとデバッグポートを公開します。したがって、このパラメータを設定する必要はありません。詳細については、「ポートマッピング」をご参照ください。
バインドマウント
ホストファイルディレクトリとコンテナファイルディレクトリ間のマッピングを指定します。値は、<ホストファイルディレクトリ>:<コンテナファイルディレクトリ> です。複数のディレクトリマッピングはスペースで区切ります。このパラメータを設定すると、ホストとそのマッピングされたコンテナは同じファイルディレクトリを共有し、共有ファイルディレクトリから個別にデータを読み取ったり、書き込んだりできます。
環境変数
コンテナの環境変数を <キー>=<値> 形式で入力します。複数の環境変数はセミコロン(;)で区切ります。
説明デフォルトでは、Alibaba Cloud Toolkit プラグインは、マイクロサービス関連のパラメータをコンテナに挿入します。詳細については、「マイクロサービス環境変数」をご参照ください。
設定が完了したら、[OK] をクリックします。
手順 2:コンテナを実行する
コンテナを実行します。初めてコンテナを実行する場合、Alibaba Cloud Toolkit プラグインは、デフォルトコンテナイメージと基盤となるレイヤーで必要な関連ツールを自動的にプルします。このプロセスには時間がかかります。次の図は、コンテナが初期化された後の起動ログを示しています。

(オプション)手順 3:Java アプリケーションをデバッグする
Alibaba Cloud Toolkit プラグインは、JAVA_TOOL_OPTIONS パラメータを使用して Java アプリケーションのデバッグを有効にし、デバッグポートをホストに公開します。デフォルトでは、ポート 5005 がデバッグに使用されます。ポートが使用中の場合、次に連続するポートが使用されます。
関連ツールを使用してデバッグポートに接続できます。また、IntelliJ IDEA が提供するデバッガー接続機能を使用して、Java アプリケーションをデバッグすることもできます。
ポートマッピング
Alibaba Cloud Toolkit プラグインは、Java アプリケーションのデバッグポートと Spring Cloud サービスポートをホストポートにマッピングします。
デバッグポート:デフォルトでは、ポート 5005 が Java アプリケーションのデバッグに使用されます。ポートが使用中の場合、次に連続するポートが使用されます。Alibaba Cloud Toolkit プラグインは、JAVA_TOOL_OPTIONS パラメータを使用してデバッグ情報を指定します。イメージを使用してコンテナを起動しない場合、デフォルトコンテナイメージはデバッグ情報を使用してマイクロサービスアプリケーションを実行します。カスタムイメージを使用してコンテナを起動する場合は、起動スクリプトで AVA_TOOL_OPTIONS パラメータを指定してマイクロサービスアプリケーションを起動する必要があります。
Spring Cloud サービスポート:デフォルトでは、ポート 8080 が使用されます。ポートが使用中の場合、次に連続するポートが使用されます。Spring Cloud サービスポートは、オンプレミスとクラウドアプリケーション間の相互接続の設定で、オンプレミスの Spring Cloud サービスポートによって上書きできます。
マイクロサービス環境変数
Alibaba Cloud Toolkit プラグインの起動時に、プラグインは次の環境変数をオンプレミスのマイクロサービスコンテナに取り込みます。イメージを使用してコンテナを起動しない場合、デフォルトコンテナイメージの起動スクリプトは、次の環境変数を自動的に識別し、コンテナを起動します。カスタムイメージを使用してコンテナを起動する場合は、ビジネス要件に基づいてこれらの環境変数を使用できます。
環境変数名 | 環境変数値 |
PRODUCT | 現在のランタイム環境のクラウド製品タイプを指定します。この環境変数は、EDAS、SAE、または MSE に設定できます。 |
JAVA_TOOL_OPTIONS |
|
ADDRESS_SERVER_HOST | Address Server のホストアドレスを指定します。 |
ADDRESS_SERVER_PORT | Address Server のポート番号を指定します。 |
ACCESS_KEY | 名前空間で使用される AccessKey ID を指定します。 |
SECRET_KEY | 名前空間で使用される AccessKey シークレットを指定します。 |
TENANT_ID | 名前空間の ID を指定します。 |
SUB_ONLY | オンプレミスとクラウドアプリケーション間の相互接続の設定で [subscribeonly] が true に設定されている場合、このパラメータは true に設定されます。 |
PROJECT_NAME | オンプレミスのマイクロサービスが属するアプリケーションの ID を指定します。 |
REMOTE_IP | リモートプロキシの内部 IP アドレスを指定します。デフォルトでは、eth0 の IP アドレスが使用されます。 |
Maven プロジェクトの説明
[アーティファクト] に [maven ビルド] を選択した場合は、コンテナ設定に Maven プロジェクトを追加する必要があります。
オンプレミスコンテナ設定で、+[起動前] セクションのプラス記号 (Mavenゴールの実行) をクリックします。次に、表示される機能リストで を選択します。
[maven ゴールの選択] ダイアログボックスで、Maven プロジェクトに対応するモジュールとコマンドを指定します。

Maven プロジェクトに複数のモジュールが含まれている場合は、次の操作を順番に実行することをお勧めします。
Maven プロジェクトの場合、[コマンドライン] フィールドに clean install と入力します。
モジュールのプロジェクトの場合、[コマンドライン] フィールドに clean package と入力します。モジュールの [コマンドライン] フィールドに clean package と入力すると、Alibaba Cloud Toolkit プラグインは、モジュールプロジェクトで作成されたパッケージを使用してコンテナを実行します。