This topic lists and describes the Dockerfile file from the Docker demonstration for the COBOL Server base image. The Dockerfile is listed in its entirety and a following table describes the various Dockerfile commands. The line numbers in the listings of the Dockerfile have been added to aid readability. They are not present in the supplied Dockerfile.
001  # Copyright (C) Micro Focus 2018. All rights reserved. 
002  
003  FROM microsoft/dotnet-framework
004  
005  # PRODUCT_VERSION is product version associated with this Dockerfile
006  # ACCEPT_CONTAINER_EULA is the build-arg name for the accepting the end user license agreement
007  # SETUP_EXE is the build-arg name name of installer to used
008  # COBSRV_LOC is the build-arg name for the installation location
009  # MFLICFILE is the build-arg name for the license filename
010  ARG PRODUCT_VERSION=4.0.00232
011  ARG ACCEPT_CONTAINER_EULA=no
012  ARG SETUP_EXE=cs_40.exe
013  ARG COBSRV_LOC=c:\\cobolrts
014  ARG MFLICFILE
015  ARG TMP_INST_DIR=c:\\cs40tmp
016  
017  LABEL vendor="Micro Focus" \
018        com.microfocus.name="COBOL Server" \
019        com.microfocus.version="$PRODUCT_VERSION" \
020        com.microfocus.eula.url="https://supportline.microfocus.com/licensing/agreements.aspx" \
021        com.microfocus.is-base-image="true"
022  
023  # transfer build arguments to environment vars
024  ENV COBSRV_LOC=${COBSRV_LOC} \
025      RMT_DIR="C:\\Program Files (x86)\\Common Files\\SafeNet Sentinel\\Sentinel RMS License Manager\\WinNT"
026  
027  WORKDIR "${TMP_INST_DIR}"
028  COPY ${SETUP_EXE} "${TMP_INST_DIR}\\"
029  
030  RUN set ACCEPT_CONTAINER_EULA=${ACCEPT_CONTAINER_EULA} && \
031      set SETUP_EXE=${SETUP_EXE} && \
032      start "" /wait %SETUP_EXE% /q "InstallFolder=%COBSRV_LOC%" /l log.txt accepteula=%ACCEPT_CONTAINER_EULA%
033  
034  # Check log.txt
035  RUN findstr /ic:"Exit Code: 0x0" log.txt || (echo "Install failed - error messages in log.txt" && findstr /ic:"error" log.txt && findstr /ic:"Exit Code:" log.txt && exit 1)
036  
037  # Cleaup directory
038  RUN set TMP_INST_DIR=${TMP_INST_DIR} && \
039      del *.exe && \
030      cd \ && rmdir /S /Q %TMP_INST_DIR%
041  
042  # set working directory to be the COBOL Server install location
043  WORKDIR "${COBSRV_LOC}"
044  
045  # license it
046  COPY ${MFLICFILE} "${COBSRV_LOC}\\"
047  RUN set MFLICFILE=${MFLICFILE} && \
048      "%RMT_DIR%\\MFLicenseAdmin.exe" -install %MFLICFILE% 
            	 The commands on the lines in this Dockerfile are as follows:
| Lines | Description | 
|---|---|
| 003 | Specifies that the base image to use is the official Docker image for .NET Framework on Windows Server 2016 Server Core. | 
| 010 - 015 | Define build arguments passed by the 
                              			 docker build command: 
 | 
| 017 - 021 | Specify the metadata labels for the image that will be created. These labels can be queried using the docker inspect command. | 
| 024 - 025 | Create environment variables to be used in this Dockerfile: 
 | 
| 027 - 028 | Sets the Docker working directory to be the temporary directory then copies the COBOL Server installation file into it. | 
| 030 - 032 | Run a series of concatenated Windows commands to: 
 | 
| 035 | Runs a series of concatenated Windows commands to search the COBOL Server installation log file for text indicating that the installation failed. If any such text is found no further processing takes place. | 
| 038 - 040 | Runs a series of concatenated Windows commands to delete the COBOL Server installation file and the temporary directory that was used to contain it. | 
| 043 | Sets the Docker working directory to be the directory into which COBOL Server was installed. | 
| 046 - 048 | Run a series of concatenated Windows commands to license COBOL Server. |