Lets jump on the task where we will prepare, create the Dockerfile and build the image and run the container to check all done successful.
Prepare software installation
Remember that official images always the preferable choice. When you search for docker images from the public repository that is hub.docker.com. We might get a huge list some of them are Automated some of them are not. The only one will be committed as an Official Image. Here selecting an image is also a strategy, logic inside. So carefully proceed further.
We need to install Java Development Kit JDK latest version and WebLogic in silent mode installation.
Step 1: Copy installers to data folder this is my convention I've used
Here few Dockerfile commands
- FROM - used to specify the base image
- MAINTAINER [depricated]- tell about the author
- RUN - executable commands separated by &&
- USER - like su command in Linux is used for switch user
- ENV - environment variables definitions predefined
- ADD - share directories or files
- WORKDIR - login is like cd in Linux you perform some of the commands there and then you can use one more time and perform
- COPY - copy the files from the host machine to container it is like scp
- CMD - Execute command where you can give multiple commands in double quotes
- ENTRYPOINT - when the container started immediately this instruction will be executed
Now we are good to go for creating the customized Docker Image using Dockerfile as follows:
# WLS DOCKERFILES PROJECT # -------------------------- # Pull base image # --------------- FROM dnraikes/oraclelinux-7:latest # Maintainer # ---------- MAINTAINER Pavan DevarakondaI'm just doing this experiment how much size this container would make that really matters.RUN mkdir -p /u01 /data && \ chmod a+xr /u01 && \ useradd -b /u01 -d /u01/oracle -m -s /bin/bash oracle && \ chown oracle:oracle -R /u01 && \ chown oracle:oracle -R /data USER oracle ENV PATH=/bin:$PATH ADD ./data /data ADD ./silent /u01/silent ADD wls_installer.sh /u01/wls_installer.sh WORKDIR /u01 RUN /u01/wls_installer.sh
Step 2: Copy silent folder containing wls_install.rsp, oraInst.loc with appropriate group and inventory location. Ref : Single hit installation of WebLogic 12c on Vagrant box
JDK, WebLogic Installation
Revisiting the last blog post few changes made which will help you to prepare the docker image while it creates the image it will install JDK and WebLogic into the intermediate containers.#!/bin/bash # This script will be installing JDK installing WebLogic in silent mode # #- Info #- Author : Pavan Devarakonda #- Date : 30-March-2017 ##############################################3 JDK_INSTALLER=jdk-8u121-linux-x64.tar.gz JDK_INSTALLER_PATH=/data INSTAL_LOC=/u01/oracle echo "installing JDK ${JDK_INSTALLER}" cd $INSTAL_LOC tar -zxvf $JDK_INSTALLER_PATH/$JDK_INSTALLER ls -l echo confirm JDK installation cd $INSTAL_LOC/jdk* JAVA_HOME=`pwd` echo "export JAVA_HOME=$JAVA_HOME">>$HOME/.bashrc echo "export PATH=$JAVA_HOME/bin:$PATH">>$HOME/.bashrc . $HOME/.bashrc echo "Check for java version" java -version echo Installing WebLogic now... WLS_INSTALLER=fmw_12.2.1.0.0_wls.jar WLS_INSTALLER_PATH=/data SILENT_DIR=/u01/silent java -jar $WLS_INSTALLER_PATH/$WLS_INSTALLER -silent -invPtrLoc $SILENT_DIR/oraInst.loc -responseFile $SILENT_DIR/wls_install.rsp echo "WebLogic $WLS_INSTALLER installed successfully...." echo . echo setting MW_HOME ... MW_HOME=`grep ORACLE_HOME $SILENT_DIR/wls_install.rsp |cut -d'=' -f2` echo "export MW_HOME=$MW_HOME">>$HOME/.bashrc echo "export WL_HOME=$MW_HOME/wlserver">>$HOME/.bashrc echo "alias wlst=$MW_HOME/oracle_common/common/bin/wlst.sh">>$HOME/.bashrc . $HOME/.bashrc
Step 3: Run the docker build as follows:
#!/bin/bash # # ################## # # BUILDING THE IMAGE # # ################## # echo "Building image '$IMAGE_NAME' ..." IMAGE_NAME="wlsimg" NOCACHE=true BUILD_START=$(date '+%s') docker build --force-rm=$NOCACHE --no-cache=$NOCACHE -t $IMAGE_NAME . || { echo "There was an error building the image." exit 1 } BUILD_END=$(date '+%s') BUILD_ELAPSED=`expr $BUILD_END - $BUILD_START` echo ""
chmod u+x build.sh ./build.sh
After the WebLogic docker image builds completed you can see the following lines at the end:
Successful execution of docker build |
The docker image list looks like this, where you can see the build image with the tag mentioned in the above :
WebLogic docker image |
Further experimenting on dockerization of WebLogic - Using containers will be posted soon.
Reference:
Reference:
- GitHub link for Oracle-WebLogic docker build