This topic outlines the steps that a Dockerfile must carry out to create a base image for 
               		Enterprise Developer Build Tools for Windows. 
               	 
            
 
            	 
            By far the easiest, and the recommended, way to create a base image for 
               		Enterprise Developer Build Tools for Windows is to use the container demonstration as described in 
               		The Container Demonstration for the 
                     		Enterprise Developer Base Image. If you do use the container demonstration, you do not need to perform any of the steps described in this topic because the
               container demonstration does them all for you. The information in this topic is provided if you choose to write your own Dockerfile
               to create an 
               		Enterprise Developer Build Tools for Windows base image. 
               	 
            
 
            	 
            Note: A separate document, 
                  		  Best Practices for Moving Your COBOL Applications to Containers, is available that describes best practices that 
                  		  Micro Focus recommends you adopt when moving an existing COBOL application to run in a containerized environment. See 
                  		  Micro Focus: Best Practices for Moving Your COBOL Applications to Containers for more information. 
               	 
            
 
            	 
            Once you have built your 
               		Enterprise Developer Build Tools for Windows base image you can then build additional images, based on the base image, that include your COBOL applications as well as
               
               		Enterprise Developer Build Tools for Windows. For more information on creating those additional images see 
               		Building an Image Containing an Application to use with 
                  		  Enterprise Developer Build Tools for Windows. 
               	 
            
 
            	 
            Note: Remember that 
                  			 Enterprise Developer is a development and test environment so not for use in production situations. If you want to run COBOL applications in containers
                  in a production environment you must use containers that contain 
                  			 Enterprise Server. 
                  		   
               	 
            
 
            	 
             
               		For users of Enterprise Developer for Eclipse (Windows): 
               	 
            
 
            	 
             
            	 
            
               
Prerequisites
 
               		 
               	 
             
            	 
            Before building a base image for 
               		Enterprise Developer Build Tools for Windows you need to ensure that you have available the following: 
               	 
            
 
            	 
             
               		   
               		  
               - The installable executable file for 
                  			 Enterprise Developer Build Tools for Windows. This is 
                  			 edbt_80.exe and is supplied in the container demonstration for the 
                  			 Enterprise Developer Build Tools for Windows base image. 
                  		  
               
- The appropriate license (.mflic or 
                  			 .xml) file for 
                  			 Enterprise Developer Build Tools for Windows. 
                  		  
               
- If you will be including Java support in the image, the relevant executable file to perform the installation of the JDK. You
                  can get this file from your chosen JDK provider. 
                  		  
               
Note: If you are using 
               		
Enterprise Developer UNIX Components you need to ensure that you have available the following: 
               		
               
 
                  		  
                  - The installable executable for 
                     			 Enterprise Developer. This is 
                     			 setup_entdev_for_docker_8.0_platform and is supplied in the Docker demonstration for the 
                     			 Enterprise Developer base image. 
                     		  
                  
- The appropriate license (.mflic or 
                     			 .xml) for 
                     			 Enterprise Developer. 
                     		  
                  
-  If you will be including Java support in the image, the relevant executable file to perform the installation of the JDK.
                     You can get this file from your chosen JDK provider. 
                     		  
                  
  
            	 
             
               		For users of Enterprise Developer for Eclipse (Windows): 
               	 
            
 
            	 
            
               
Building a base image
 
               		 
               	 
             
            	 
            To build a base image that includes 
               		Enterprise Developer Build Tools for Windows your Dockerfile needs to perform the following steps: 
               	 
            
 
             
               	 
                
                  		
                  - Specify a base image to work from. This will typically be 
                     		  microsoft/dotnet-framework or 
                        			 microsoft/dotnet-framework-build. 
                     		  
                     When creating a base image containing 
                        			 Enterprise Developer Build Tools for Windows you might want to create two different versions of the image - a regular image (which is built from 
                        			 microsoft/dotnet-framework) and a "-build" image (which is built from 
                        			 microsoft/dotnet-framework-build). The 
                        			 microsoft/dotnet-framework-build image includes build-related files that are not included in 
                        			 microsoft/dotnet-framework, so while an image built from 
                        			 microsoft/dotnet-framework will let you run applications, if you want to build applications you should use 
                        			 microsoft/dotnet-framework-build. 
                        		  
                      Note: Because 
                        			 microsoft/dotnet-framework-build contains additional files that are not included in 
                        			 microsoft/dotnet-framework, for the sake of keeping container sizes to a minimum you should only use 
                        			 microsoft/dotnet-framework-build when you need the additional build-related features. 
                        		  
                      The container demonstration that builds the base image containing 
                        			 Enterprise Developer Build Tools for Windows uses this approach, creating both 
                        			 microfocus/edbuildtools:win_8.0 and 
                        			 microfocus/edbuildtools-build:win_8.0. 
                        		  
                      
- Define metadata for your image. This will make it easier to establish significant details of the image when you use the 
                     			 docker inspect command. 
                     		  
                  
- Define any variables for filenames and folder locations. 
                     			 
                     Note: If you will be using this image to run applications under Enterprise Server, you need to set the MFDS_EXTERNAL_ADDR environment
                        variable to specify a resolvable external address string. This is to enable client browsers to resolve the URLs used by ESMAC
                        and other utilities in Enterprise Server Administration. 
                        				
                         The value that you specify for this environment variable is used to replace the internal container address in the URL. 
                           				
                         
 
- Copy the installable executable file for 
                     		  Enterprise Developer Build Tools for Windows (edbt_80.exe) from your host machine to a temporary folder in the image's filesystem, then run it to install 
                     		  Enterprise Developer Build Tools for Windows. 
                     		  
                     When running 
                        			 edbt_80.exe you need to specify the following parameters: 
                        		  
                       
                        			  
                        				
                        - /q 
                           				
                        
- to run the installaton silently; that is non-interactively with no user interface, using defaults for any values that are
                           not specified elsewhere on the command line. 
                           				
                        
- InstallFolder=installation-location 
                           				
                        
- to specify the name of the folder into which you want to install 
                           				  Enterprise Developer Build Tools for Windows. This a folder that you must have created on the image's filesystem. 
                           				
                        
- /l 
                           				  log-file-name 
                           				
                        
- to create a log file of the installation. 
                           				
                        
- accepteula=yes 
                           				
                        
- to indicate that you accept the terms of the 
                           				  Micro Focus End User License Agreement (EULA). 
                           				
                        
 
- Check the log file produced by the installation to ensure that the installation was successful. 
                     		
                  
- Use the 
                        			 MFLicenseAdmin.exe utility to install the license for 
                        			 Enterprise Developer Build Tools for Windows. 
                     		
                  
- Set up the Ant and Java support. 
                     		
                  
- Specify the network ports that the container will listen on at run-time. 
                     		
                  
- Perform any required clean-up. This includes tasks such as resetting variables and deleting temporary folders. 
                     		  
                  
- Set the working directory to be the folder into which you installed 
                     		  Enterprise Developer Build Tools for Windows. 
                     		
                  
Note: Micro Focus recommends that in addition to having a Dockerfile that performs the above steps you have additional Dockerfiles
                  to create platform-specific versions of the 
                  		
Enterprise Developer Build Tools for Windows base image. These additional Dockerfiles will be very simple, using the 
                  		
Enterprise Developer Build Tools for Windows base image as their base then running commands to ensure that the correct (32-bit or 64-bit) environment is set up. 
                  		
                  
You could also choose to create a base image for 
                     		  Enterprise Developer Build Tools for Windows that doesn't include Java support. If you need to do this you would simply modify the above process to not perform the step
                     related to setting up the Java support. 
                     		
                  
 
                  		 
                  	 
                 
              
             
               	 
               For users of Enterprise Developer for Eclipse (UNIX), or Enterprise Developer UNIX Components: 
                  	 
               
 
               	 
               To build a base image that includes 
                  		Enterprise Developer your Dockerfile needs to perform the following steps: 
                  	 
               
 
               	 
                
                  		
                  - Specify a base image to work from. This will typically be 
                     		  rhel7/rhel:latest or 
                     		  suse/sles12sp3 depending on whether you are using Red Hat Linux or SUSE Linux. 
                     		
                  
- Define metadata for your image. This will make it easier to establish significant details of the image when you use the 
                     		  docker inspect or 
                        			 podman inspect command. 
                     		
                  
- Define any variables for filenames and folder locations. 
                     		
                  
- Install any packages that are required for 
                     		  Enterprise Developer Build Tools for Windows to install successfully. See 
                     		  Software Requirements for more information. 
                     		
                  
- Copy the installable executable file for 
                     		  Enterprise Developer Build Tools for Windows (setup_entdev_for_docker_8.0_platform.gz) from your host machine to a temporary folder in the image's filesystem. 
                     		
                  
- Create the user and groups whose details will be used when installing 
                     		  Enterprise Developer Build Tools for Windows. 
                     		
                  
- Ensure that the installable executable file for 
                     		  Enterprise Developer Build Tools for Windows has execute permissions, then execute it. 
                     		  
                     When running 
                        			 setup_entdev_for_docker_8.0_platform.gz you need to specify the following parameters: 
                        		  
                       
                        			  
                        				
                        - -IacceptEULA 
                           				
                        
-  to indicate that you accept the terms of the 
                           				  Micro Focus End User License Agreement (EULA). 
                           				
                        
- -ESadminID=user-name 
                           				
                        
- to set the Enterprise Server System Administrator Process User ID. 
                           				
                        
 
- Configure the dynamic linker run-time bindings to include the shared objects supplied with 
                     			 Enterprise Developer. 
                     			 
                     Doing this avoids the need to update the LD_LIBRARY_PATH environment variable. 
                        			 
                      
- Perform any required clean-up. This includes tasks such as resetting variables and deleting temporary folders. 
                     		
                  
- Install a license for 
                     		  Enterprise Developer Build Tools for Windows then remove the license file. 
                     		
                  
Note: You might also want to create an image that you can log in to and execute shell or 
                  		
Enterprise Developer commands. This option is useful if you are not adding any application files to a base image but want to be able to use 
                  		
Enterprise Developer commands from it. 
                  		
                  
All of the container demonstrations offer the option to create such a login image, and those images are tagged with the suffix
                     "_login". See 
                     		  Running the Container Demonstration for the 
                        			 Enterprise Developer Base Image for information on how to specify that you want to create a 
                     		  _login image. For details on the commands required to build such an image, see the 
                     		  bld.sh script in any of the container demonstrations. 
                     		
                  
 
                  	 
                 
               	  
               	 
               
                  Adding .NET 6 support to an image
 
                  		 
                  		
                  Note: This option is supported on the following platforms: 
                     		  
                     
 
                        			 
                        - AmazonLinux 2 
                           			 
                        
- RHEL 8 
                           			 
                        
- SLES/OpenSUSE Leap 15 
                           			 
                        
- Ubuntu 18.04, 20.04, 21.04, 21.10 
                           			 
                        
  
                  		
                   The build tool for image creation, 
                     		  bld.sh, supports an optional argument, 
                     		dotnet, that adds .NET 6 support to an image. 
                     		
                  
 
                  		
                  Specify 
                     		dotnet when you create the image, and either the .NET 6 SDK or .NET 6 Runtime will be included in your image. 
                     		bld.sh uses the dotnet NuGet tool to register the products' NuGet repository and templates. In this way, the image is ready for
                     use by you or your CI/CD system. 
                     		
                  
 
                  		
                   For 
                     		  Enterprise Developer, 
                     		  bld.sh installs the .NET SDK. The NuGet package path is adjusted, and templates are registered. The installation is completed by
                     a secondary script, 
                     		  dotnet_install.sh. 
                     		
                  
 
                  		
                   For 
                     		  Enterprise ServerCOBOL Server, the .NET Runtime is used.