This topic describes in detail the commands used by the Dockerfile in the Docker demonstration for the Enterprise Developer 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 rhel7/rhel:latest
004
005 # PRODUCT_VERSION is product version associated with this Dockerfile
006 # ACCEPTEULA is the build-arg name for the acceptance of 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.00
011 ARG ACCEPTEULA
012 ARG SETUP_EXE=setup_entdev_for_docker_4.0_redhat_x64
013 ARG LOGFILE=EnterpriseDeveloper4.0.log
014 ARG MFLICFILE
015 ARG ESADM_UID=500
016 ARG ESADM_GID=500
017 ARG ESADM_USER=edadm
018 ARG ESADM_SHELL=/bin/bash
019
020 LABEL vendor="Micro Focus" \
021 com.microfocus.name="Enterprise Developer" \
022 com.microfocus.version="$PRODUCT_VERSION" \
023 com.microfocus.eula.url="https://supportline.microfocus.com/licensing/agreements.aspx" \
024 com.microfocus.is-base-image="true"
025
026 ENV MFPRODBASE=/opt/microfocus/EnterpriseDeveloper
027 ENV MFLICBASE=/var/microfocuslicensing
028
029
030 # install ed, pax and glibc-devel.x86_64 as these are a pre-req for the installer
031 # note: disablerepo is used to avoid "HTTPS Error 403 - Forbidden" error
032 RUN yum -y --disablerepo=rhel-7-server-rt-beta-rpms install ed pax gcc gcc-c++.x86_64 gdb glibc-devel.x86_64 make file
033
034 # copy the installer from the local machine to the container
035 COPY ${SETUP_EXE} /tmp/
036
037 # Create user esadm
038 RUN groupadd -f -g $ESADM_GID $ESADM_USER && \
039 useradd -u $ESADM_UID -g $ESADM_GID -m -s $ESADM_SHELL $ESADM_USER
040
041 # ensure the setup exe has execute permissions and execute the setup
042 RUN chmod +x ./tmp/${SETUP_EXE} && \
043 (/tmp/${SETUP_EXE} -${ACCEPTEULA} -ESadminID=$ESADM_USER || (echo ${LOGFILE} contains && touch ${LOGFILE} && cat ${LOGFILE} && exit 1)) && \
044 rm -f /tmp/${SETUP_EXE} && \
045 echo "$MFPRODBASE/lib" >>/etc/ld.so.conf && \
046 ldconfig
047
048 # install a license and remove the license file
049 COPY ${MFLICFILE} /tmp/
050 RUN cd /tmp && $MFLICBASE/bin/MFLicenseAdmin -install "${MFLICFILE}" && rm -f "${MFLICFILE}"
051
052 # COPY cobsetenv_login to the bin
053 COPY cobsetenv_login /root/bin/
054 #
055 # clean up for containers that use -network:host
056 #
057 RUN $MFLICBASE/bin/clean_guid_file
The commands on the lines in this Dockerfile are as follows:
| Lines | Description |
|---|---|
| 003 | Specifies the base image to use. For Red Hat this is the official Docker image for Red Hat Enterprise Linux.
For SUSE Linux this line is as follows: FROM suse/sles12sp3 This specifies that the base image to use is the official Docker image for SUSE Linux Enterprise Server. |
| 010 - 018 | Define build arguments passed by the
docker build command:
|
| 020 - 024 | Specify the metadata labels for the image that will be created. These labels can be queried using the docker inspect command. |
| 026 - 027 | Create environment variables to be used in this Dockerfile:
|
| 032 | Install software that is required to be able to install Enterprise Developer. |
| 035 | Copy the installation file for Enterprise Developer into a temporary folder. |
| 038 - 039 | Run a series of concatenated commands to add the Enterprise Server admin user and set up the shell to be used by that user. |
| 042 - 046 | Run a series of concatenated commands to perform the following actions:
|
| 049 - 050 | Copy the license file to a temporary location, use it to license Enterprise Developer, then delete the license file. |
| 053 | Copy the default environment that is to be used when someone logs on as root. |
| 057 | Run a script to reset the temporary file used when applying the license for Enterprise Developer. |