コンテナー内のネイティブ COBOL アプリケーションをビルドする方法

注:本トピックは、コンテナーでネイティブ COBOL アプリケーションおよびネイティブ COBOL 単体テスト プロジェクトを使用する場合にのみ該当します。コンテナーで JVM COBOL アプリケーションを使用するには、「コンテナーでの JVM COBOL アプリケーションのデバッグおよび実行」で説明されている機能を使用する必要があります。

コンテナー内のネイティブ COBOL アプリケーションを使用する場合、アプリケーションをデバッグまたは実行する際に使用するビルド方法を決定する必要があります。本トピックでは、使用できる各方法について説明し、状況に応じて最適な方法を選択するためのガイダンスを示します。

ネイティブ COBOL アプリケーションをデバッグおよび実行する際、コンテナーをどのように使用するかに応じて、アプリケーションをビルドおよび実行する方法を 3 つの方法から選択できます。使用する方法を指定するには、[Debug Configurations] ダイアログ ボックスおよび [Run Configurations] ダイアログ ボックスの [Containers] タブのオプションを使用します。

使用できるそれぞれの方法、[Containers] タブの関連するオプション、およびそれらを使用した場合の影響を次に示します。

  • コンテナーなしでビルド

    コンテナーを使用せずにプロジェクトをデバッグまたは実行します。プロジェクトの Dockerfile は無視され、プロジェクトが通常の方法でデバッグまたは実行されます。

    この方法を指定するには、[Containers] タブで [Run on machine where the project is located (default)] を選択します。

  • ホストでビルド

    Enterprise Developer で作成される標準の Dockerfile では、複数のステージから成るビルド方法が使用されます。この方法では、「base」ステージで最終的なアプリケーションを実行するために必要なすべてのソフトウェアを含む (アプリケーション ファイル自体は含まない) イメージを作成し、「build-env」ステージでアプリケーションをビルドし、最終ステージで実行するイメージを作成します。この最終的なイメージは、「base」ステージのイメージをベースとして、他のファイルをコンテキストまたは「build-env」ステージからコピーすることで作成されます。

    「ホストでビルド」の方法では、Dockerfile の「base」ステージのみを使用してプロジェクトがビルドされます。つまり、コンテナー内の開発環境ではなく、ホスト上の開発環境でプロジェクトがビルドされます。ホストでビルドが完了すると、ボリュームのマウントを使用して、ビルド出力を含むフォルダーが「base」ステージのコンテナー ファイル システムの /App フォルダーにコピーされます。

    この方法を指定するには、[Containers] タブで [Use base stage from Dockerfile] を選択します。

  • コンテナーでビルド

    「コンテナーでビルド」の方法では、Dockerfile 全体を使用してプロジェクトがビルドされます。つまり、プロジェクトのソース ファイルがコンテナーにコピーされ、コンテナー内の開発環境でビルドされた後、コンテナー内のディプロイ環境を使用してビルド出力が実行されます。

    この方法を指定するには、[Containers] タブで [Use project Dockerfile] を選択します。

注:

「ホストでビルド」または「コンテナーでビルド」の方法を使用する場合、デバッグまたは実行の操作に使用するコンテナーが Enterprise Developer で作成され、プロジェクトの実行が完了すると削除されます。それぞれの方法でイメージも作成されますが、それらは保持されて以降のビルドに使用されます。

使用する方法の選択

コンテナーを使用する場合は、「ホストでビルド」または「コンテナーでビルド」のいずれかの方法を選択する必要があります。「コンテナーなしでビルド」の方法を使用するのは、コンテナー化されていない通常の方法でデバッグおよび実行する場合のみです。

「ホストでビルド」と「コンテナーでビルド」のどちらの方法を選択するかは、基本的に、ビルド プロセスの速度とビルドおよびデバッグ環境の一貫性のどちらが重要であるかに応じて判断します。

  • 一般にホスト コンピューターでプロジェクトをビルドした方がコンテナーでビルドするよりも高速であるため、「ホストでビルド」の方が「コンテナーでビルド」よりも格段に高速になることがあります。
  • 「コンテナーでビルド」では、ビルド、デバッグ、およびディプロイに常に同じ環境 (コンテナー内の環境) が使用されます。「ホストでビルド」では、ホスト上で定義されている環境が使用されるため、時間の経過とともに変わったり、ホストごとに異なる場合があります。

これらの違いから、プロジェクト開発の比較的初期の時点で、編集、ビルド、デバッグを何度も繰り返し行う必要がある段階では、「ホストでビルド」を使用する方法が考えられます。その後、プロジェクトが成熟して安定し、ビルド速度よりもディプロイされたコンテナーとまったく同じビルド環境を使用してプロジェクトをビルドすることが重要になった時点で、「コンテナーでビルド」に切り替えることができます。