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