本トピックでは、Enterprise Developer ベース イメージの Docker デモンストレーションの Dockerfile で使用されるコマンドについて詳しく説明します。Dockerfile 全体をリストし、Dockerfile に含まれる各コマンドの説明をその後の表にまとめてあります。Dockerfile のリストに示してある行番号は、読みやすくするために追加したものです。付属の 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
この Dockerfile の各行のコマンドは次のとおりです。
| 行 | 説明 |
|---|---|
| 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 | docker build コマンドで渡すビルド引数を定義します。
|
| 020 - 024 | 作成するイメージのメタデータ ラベルを指定します。これらのラベルは docker inspect コマンドで照会できます。 |
| 026 - 027 | この 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 | 連結された一連のコマンドを実行して、Enterprise Server の管理者ユーザーを追加し、そのユーザーが使用するシェルを設定します。 |
| 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 | root としてログオンしたときに使用されるデフォルトの環境をコピーします。 |
| 057 | Run a script to reset the temporary file used when applying the license for Enterprise Developer. |