このトピックでは、Windows 用の Enterprise Developer ビルド ツールで実行できる COBOL アプリケーションを含むイメージを作成するために Dockerfile で実行する必要がある手順について説明します。
本トピックで説明しているプロセスは、Windows 用の Enterprise Developer ビルド ツールで使用できるアプリケーションのイメージを作成するための付属のコンテナー デモンストレーションで使用されているプロセスです。本トピックで説明している手順はコンテナー デモンストレーションの Dockerfile にすでに含まれているため、Micro Focus では、独自のアプリケーションを含むイメージを作成する必要がある場合、Dockerfile を新規に記述するのではなく、その Dockerfile をベースにすることをお勧めします。関連するすべてのファイルについての説明など、これらのコンテナー デモンストレーションの詳細については、「CICS コンテナー デモンストレーション」を参照してください。
注:コンテナー化された環境で実行するために既存の COBOL アプリケーションを移行する際に Micro Focus が推奨するベスト プラクティスについては、『Best Practices for Moving Your COBOL Applications to Containers』という別のドキュメントが提供されています。詳細については、「Micro Focus: Best Practices for Moving Your COBOL Applications to Containers」を参照してください。
このトピックの手順を実行する前に、Windows 用の Enterprise Developer ビルド ツールのベース イメージを作成しておく必要があります。Windows 用の Enterprise Developer ビルド ツールのベース イメージの作成については、「Windows 用の Enterprise Developer ビルド ツールを含むベース イメージの作成」を参照してください。
注:Enterprise Developer は開発およびテスト用の環境であり、本番環境として使用するものではありません。COBOL アプリケーションを本番環境のコンテナーで実行する場合は、Enterprise Server を含むコンテナーを使用する必要があります。
Windows 用の Enterprise Developer ビルド ツールで使用するアプリケーションを含むイメージを作成する前に、次のものが用意されていることを確認してください。
- Windows 用の Enterprise Developer ビルド ツールのベース イメージ。このイメージをまだ作成していない場合に、作成方法について確認するには、「Windows 用の Enterprise Developer ビルド ツールを含むベース イメージの作成」を参照してください。
Windows 用の Enterprise Developer ビルド ツールで使用するアプリケーションを含むイメージを作成するには、Dockerfile で次の手順を実行する必要があります。
- 作成元となるベース イメージを指定します。これは、必要に応じて 32 ビットまたは 64 ビット用に作成された Windows 用の Enterprise Developer ビルド ツールのみを含むイメージである必要があり、追加のビルド機能を含んでおり、通常は microfocus/edbuildtools-build:win_9.0_x86 または microfocus/edbuildtools-build:win_9.0_x64 になります。
詳細については、「Windows 用の Enterprise Developer ビルド ツールを含むベース イメージの作成」を参照してください。
- イメージのメタデータを定義します。これにより、docker inspect コマンドの使用時にイメージの重要な詳細を簡単に設定できるようになります。
- ファイル名およびフォルダーの場所に関する変数を定義します。
注:このイメージを使用して Enterprise Server でアプリケーションを実行する場合は、MFDS_EXTERNAL_ADDR 環境変数を設定して、解決可能な外部アドレス文字列を指定する必要があります。これは、クライアント ブラウザが、Enterprise Server Administration の ESMAC およびその他のユーティリティで使用される URL を解決できるようにするためです。
この環境変数に指定した値は、URL 内の内部コンテナー アドレスを置き換えるために使用されます。
- アプリケーションのソース ファイルをイメージのファイルシステム上のフォルダーにコピーし、作業ディレクトリをそのフォルダーに設定します。
- アプリケーションのソース ファイルに対して行う必要があるすべての処理を実行します。通常これはコンパイルおよびビルドになりますが、Windows 用の Enterprise Developer ビルド ツールで可能な任意の処理を実行できます。
- ビルドしたアプリケーション ファイルをイメージのファイルシステム上にある目的のフォルダーにコピーし、作業ディレクトリをそのフォルダーに設定します。
- アプリケーションが .NET COBOL の場合は、必要なサポート ファイルがイメージに含まれていることを確認します。詳細については、「コンテナーで実行される .NET COBOL アプリケーションのデバッグ」を参照してください。
- Micro Focus Directory Server (MFDS) が実行されるまで待ってから、必要なエンタープライズ サーバー リージョンを構成して起動します。これらの操作を実行するコマンド用に別のスクリプトを用意することを検討してください。CICS コンテナー デモンストレーションでは、DeployAndWait.ps1 というスクリプトを使用しています。
- 必要なクリーンアップを実行します。これには、変数のリセットや一時フォルダーの削除などのタスクが含まれます。
- イメージの実行時に実行する実行可能ファイルの名前を指定します。
注:Windows 用の Enterprise Developer ビルド ツールで実行されるアプリケーションを含むコンテナーを起動する際、コンテナーのエンタープライズ サーバーをホスト マシン以外のマシンから Micro Focus Directory Server (MFDS) および Enterprise Server Monitor and Control (ESMAC) を使用して管理できるようにするには、
docker run コマンドでいくつかの追加のパラメーターを指定する必要があります。追加のパラメーターは次のとおりです。
- -p は、コンテナーのポートをホスト コンピューターのポートにマップします。
- -e は、コンテナーが実行されているホスト コンピューターの名前を指定するための MFDS_EXTERNAL_ADDR 環境変数を指定します。
たとえば、CICS コンテナー デモンストレーションのイメージを実行する場合は、docker run コマンドで次のようにパラメーターを指定します。
-p 16001:86/udp -p16001:86/tcp -p 9000-9010:9000-9010 -e MFDS_EXTERNAL_ADDR=host-computer-name