Running a Container that is to be Debugged

This topic describes how to run an Enterprise Developer Build Tools for Windows base image and volume mount an application's executable and debug files so that you can debug the application.

Note: This topic does not apply if you are using Enterprise Developer UNIX Components.

When you run the container, you must make sure that the docker run command specifies the following in addition to any parameters that you would normally specify:

For example, the following is a docker run command you could use to run the native COBOL Hello World Docker demonstration that had been built into an image for use on 64-bit Red Hat Linux platforms:

docker run -p 6100 
--cap-add=SYS_PTRACE
--name helloworld-x64-debug
-v /home/user/workspace/simpleproj/New_Configuration.bin:/home/root_docker/app
--workdir /home/root_docker/app
-it microfocus/entdevhub:rhel7_5.0_x64_login

The parameters specified in the above docker run command are as follows:

-p 6100
Publishes port number 6100. This must be specified by an EXPOSE command in the Dockerfile that was used to create the image.
--cap-add=SYS_PTRACE
Enables debugging inside a Linux container.
--name helloworld-x64-debug
Specifies the name to be used for the container.
-v /home/user/workspace/simpleproj/New_Configuration.bin:/home/root_docker/app
Mounts the local folder /home/user/workspace/simpleproj/New_Configuration.bin into the folder /home/root_docker/app in the container.
--workdir /home/root_docker/app
Sets the working directory for the container. This must be the same folder that is specified by the -v parameter.
-it
Specifies that the container runs interactively.
microfocus/entdevhub:rhel7_5.0_x64_login
Specifies the name of the image to run.

When the container is running, if the application running is in native COBOL a message such as the following is displayed to indicate that the container is running and cobdebugremote (or cobdebugremote64) is ready to connect for debugging:

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