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. |