コンテナー内のネイティブ COBOL アプリケーションを使用する場合、アプリケーションをデバッグまたは実行する際に使用するビルド方法に注意する必要があります。本トピックでは、使用できる 2 つの方法について説明します。
使用できる 2 つの方法とそれらを使用した場合の影響を次に示します。
Enterprise Developer で作成される Dockerfile では、複数のステージから成るビルド方法が使用されます。この方法では、「build」ステージでプロジェクトをビルドし、そのビルド出力を「base」ステージでコンテナーのファイル システムの c:\App フォルダーにコピーしてプロジェクトを実行します。
「ホストでビルド」の方法では、Dockerfile の「base」ステージのみを使用してプロジェクトがビルドされます。つまり、コンテナー内の開発環境ではなく、ホスト上の開発環境でプロジェクトがビルドされます。ホストでビルドが完了すると、ボリュームのマウントを使用して、ビルド出力を含むフォルダーがコンテナー ファイル システムの c:\App フォルダーにコピーされます。
「コンテナーでビルド」の方法では、Dockerfile 全体を使用してプロジェクトがビルドされます。つまり、プロジェクトのソース ファイルがコンテナーにコピーされ、コンテナー内の開発環境でビルドされた後、コンテナー内のディプロイ環境を使用してビルド出力が実行されます。
一般にホスト コンピューターでプロジェクトをビルドした方がコンテナーでビルドするよりも高速であるため、「ホストでビルド」の方が「コンテナーでビルド」よりも格段に高速になることがあります。そのため、ネイティブ COBOL アプリケーションをデバッグする際は常に「ホストでビルド」の方法を使用します。
「コンテナーでビルド」は「ホストでビルド」よりも低速ですが、ビルド、デバッグ、およびディプロイに常に同じ環境 (コンテナー内の環境) が使用されます。そのため、リリース用のネイティブ COBOL アプリケーションをビルドする際は「ホストでビルド」の方法を使用します。