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

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

注: The information in this topic applies to both native COBOL and .NET COBOL applications unless specifically indicated. If you want to use native COBOL in containers, however, Micro Focus recommends using the IDE-based functionality described in コンテナーでのネイティブ COBOL アプリケーションのデバッグおよび実行 as it offers an fully-integrated, easy-to-use debugging experience.

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

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

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

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

-p 6100
ポート番号 6100 をパブリッシュします。これは、イメージの作成時に使用した 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_9.0_x64
実行するイメージの名前を指定します。この例では、64 ビット Windows 版の Enterprise Developer Build Tools for Windows イメージを指定しています。
port=6100
コンテナーのコマンド ライン パラメーターです。

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

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