デバッグ対象のコンテナーの実行

本トピックでは、Windows 用の Enterprise Developer ビルド ツール ベース イメージを実行し、アプリケーションの実行可能ファイルおよびデバッグ ファイルのボリュームのマウントを行うことで、アプリケーションをデバッグできるようにする方法について説明します。

注: 本トピックの情報は、特に指定がない限り、ネイティブ COBOL アプリケーションおよび .NET COBOL アプリケーションの両方に該当します。ただし、コンテナーでネイティブ COBOL を使用する場合、Micro Focus では IDE ベースの機能を使用することをお勧めします。この機能により、完全に統合された使いやすいデバッグ エクスペリエンスが得られるためです。IDE ベースの機能の詳細については、「コンテナーでのネイティブ COBOL アプリケーションのデバッグおよび実行」を参照してください。

コンテナーを実行する際は、docker run コマンドで通常指定するパラメーターに加えて次のものを指定する必要があります。

たとえば、コンテナー デモンストレーションとして提供されているネイティブ COBOL の Hello World プロジェクトを実行する場合の docker run コマンドの例を次に示します。

docker run -p 8000 --rm 
 --name helloworld-x64-debug 
 -v %CD%\src\bin\x64\Debug:c:\app 
 --workdir c:\app 
 --entrypoint cobdebugremote64 
 -it microfocus/edbuildtools:win_6.0_x64 
 port=8000

上記の docker run コマンドで指定しているパラメーターは次のとおりです。

-p 8000
ポート番号 8000 をパブリッシュします。これは、イメージの作成時に使用した Dockerfile で EXPOSE コマンドを使用して指定されている必要があります。
--rm
実行の終了時に自動的にコンテナーを削除するように指定します。
--name helloworld-x64-debug
コンテナーで使用する名前を指定します。
-v %CD%\src\bin\x64\Debug:c:\app
ローカル フォルダー %CD%\src\bin\x64\Debug をコンテナー内のフォルダー c:\app にマウントします。%CD% は現在のディレクトリを表し、docker run コマンドを Windows バッチ ファイルから実行する場合にのみ使用できます。コマンド ラインからコマンドを実行する場合は、PowerShell の自動変数 ${PWD} を使用するか、現在のディレクトリのフル パスを指定します。
--workdir c:\app
コンテナーの作業ディレクトリを設定します。-v パラメーターで指定したフォルダーと同じにする必要があります。

--entrypoint cobdebugremote64
リモート デバッグを有効にするために 64 ビットの cobdebugremote64 モジュールを指定します。これはネイティブ COBOL アプリケーションでのみ必要です。
-it
コンテナーを対話的に実行するように指定します。
microfocus/edbuildtools:win_6.0_x64
実行するイメージの名前を指定します。この例では、64 ビット Windows 版の Enterprise Developer Build Tools for Windows イメージを指定しています。
port=8000
コンテナーのコマンド ライン パラメーターです。

コンテナーの実行時、実行中のアプリケーションがネイティブ COBOL である場合、コンテナーが実行されていて cobdebugremote (または cobdebugremote64) のデバッグ用の接続を準備していることを示す次のようなメッセージが表示されます。

Waiting for a connection on machine IP-address/container-name using port port-number.
Press 'Q' to quit.