Skip to content

Commit fa907e4

Browse files
make build args from var file
1 parent cd8d38c commit fa907e4

File tree

3 files changed

+44
-52
lines changed

3 files changed

+44
-52
lines changed

samples/docker-domain/Dockerfile

Lines changed: 23 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -32,39 +32,45 @@ FROM store/oracle/weblogic:12.2.1.3-dev
3232
# ----------
3333
MAINTAINER Richard Killen <[email protected]>
3434

35-
ARG WDT_MODEL
3635
ARG WDT_ARCHIVE
3736
ARG WDT_VARIABLE
37+
ARG WDT_MODEL
38+
ARG ADMIN_HOST
39+
ARG ADMIN_PORT
40+
ARG MS_PORT
41+
ARG DOMAIN_DIR
42+
ARG DEBUG_PORT
3843

3944
# WLS Configuration - oracle home and domain home
4045
# The boot.properties will be created under the DOMAIN_HOME when the AdminServer container is run
4146
# ---------------------------
4247
ENV ORACLE_HOME=/u01/oracle \
43-
PROPERTIES_FILE_DIR="${ORACLE_HOME}/properties" \
44-
DOMAIN_HOME_PARENT=${ORACLE_HOME}/user_projects/domains \
45-
PATH=$PATH:${ORACLE_HOME}/oracle_common/common/bin:${ORACLE_HOME}/wlserver/common/bin:${ORACLE_HOME}
48+
PROPERTIES_FILE_DIR="$ORACLE_HOME/properties" \
49+
DOMAIN_PARENT="${ORACLE_HOME}/user_projects/domains" \
50+
DOMAIN_HOME="${DOMAIN_PARENT}/${DOMAIN_DIR:-TESTDOMAON}" \
51+
ADMIN_HOST="${ADMIN_HOST:-wlsadmin}" \
52+
ADMIN_PORT="${ADMIN_PORT:-7001}" \
53+
MS_PORT="${MS_PORT:-8001}" \
54+
DEBUG_PORT="${DEBUG_PORT:-8453}" \
55+
PATH=$PATH:${ORACLE_HOME}/oracle_common/common/bin:${ORACLE_HOME}/wlserver/common/bin:$DOMAIN_HOME/bin:${ORACLE_HOME}
4656

4757
# WDT install and WDT user files
4858
# ------------------------------------------------------------
49-
ENV COPY_PROPERTIES="properties/docker_build" \
50-
WDT_HOME="/u01" \
51-
SCRIPT_HOME="${ORACLE_HOME}" \
52-
WDT_MODEL="$WDT_MODEL" \
53-
WDT_ARCHIVE="$WDT_ARCHIVE" \
54-
WDT_VARIABLE="$WDT_VARIABLE"
59+
ENV WDT_HOME="/u01" \
60+
SCRIPT_HOME="${ORACLE_HOME}"
5561

5662
# Add files required to build this image and run a container from the image
57-
COPY container-scripts/* ${SCRIPT_HOME}/
5863
COPY weblogic-deploy.zip ${WDT_HOME}
64+
COPY container-scripts/* ${SCRIPT_HOME}/
5965

6066
# Create the properties file directory and the domain home parent with the correct permissions / owner.
6167
# Unzip and install the WDT image.
6268
# Export variable file values into the environment
6369
USER root
6470
RUN chmod +xw ${SCRIPT_HOME}/*.sh && \
6571
mkdir -p +xwr ${PROPERTIES_FILE_DIR} && \
66-
mkdir -p $DOMAIN_HOME_PARENT && \
67-
chmod -R a+xwr $DOMAIN_HOME_PARENT && \
72+
mkdir -p $DOMAIN_PARENT && \
73+
chmod -R a+xwr $DOMAIN_PARENT && \
6874
cd ${WDT_HOME} && \
6975
$JAVA_HOME/bin/jar xf ./weblogic-deploy.zip && \
7076
rm weblogic-deploy.zip && \
@@ -75,7 +81,7 @@ RUN chmod +xw ${SCRIPT_HOME}/*.sh && \
7581
# These files will be removed after the image is built.
7682
# Be sure to build with --force-rm to eliminate this container layer
7783

78-
COPY ${WDT_MODEL} ${WDT_ARCHIVE} ${WDT_VARIABLE} ${COPY_PROPERTIES}/*.properties ${PROPERTIES_FILE_DIR}/
84+
COPY ${WDT_MODEL} ${WDT_ARCHIVE} ${WDT_VARIABLE} properties/docker_build/*.properties ${PROPERTIES_FILE_DIR}/
7985

8086
# Create the domain home in the docker image.
8187
#
@@ -87,14 +93,9 @@ ENV WDT_HOME=$WDT_HOME/weblogic-deploy
8793

8894
# Set WORKDIR for @@PWD@@ global token in model file
8995
WORKDIR $ORACLE_HOME
90-
RUN chmod -R +xwr ${PROPERTIES_FILE_DIR} && \
91-
PROPERTIES_FILE=$PROPERTIES_FILE_DIR/$WDT_VARIABLE && \
92-
. ${SCRIPT_HOME}/setEnv.sh && \
93-
DOMAIN_HOME=${DOMAIN_HOME_PARENT}/${DOMAIN_NAME} && \
94-
export DOMAIN_HOME && \
95-
if [ -n "$WDT_MODEL" ]; then MODEL_OPT="-model_file $PROPERTIES_FILE_DIR/$WDT_MODEL"; fi && \
96+
RUN if [ -n "$WDT_MODEL" ]; then MODEL_OPT="-model_file $PROPERTIES_FILE_DIR/$WDT_MODEL"; fi && \
9697
if [ -n "$WDT_ARCHIVE" ]; then ARCHIVE_OPT="-archive_file $PROPERTIES_FILE_DIR/$WDT_ARCHIVE"; fi && \
97-
if [ -n "$WDT_VARIABLE" ]; then VARIABLE_OPT="-variable_file $PROPERTIES_FILE"; fi && \
98+
if [ -n "$WDT_VARIABLE" ]; then VARIABLE_OPT="-variable_file $PROPERTIES_FILE_DIR/$WDT_VARIABLE"; fi && \
9899
${WDT_HOME}/bin/createDomain.sh \
99100
-oracle_home ${ORACLE_HOME} \
100101
-java_home ${JAVA_HOME} \
@@ -103,22 +104,9 @@ RUN chmod -R +xwr ${PROPERTIES_FILE_DIR} && \
103104
$VARIABLE_OPT \
104105
$MODEL_OPT \
105106
$ARCHIVE_OPT && \
106-
chown -R oracle:oracle ${DOMAIN_HOME_PARENT} && \
107+
chown -R oracle:oracle ${DOMAIN_PARENT} && \
107108
rm -rf ${PROPERTIES_FILE_DIR}
108109

109-
# Set the ENV variables needed for runing container.
110-
# If these variables are not in the variable file and not set on the build or run, set a default value.
111-
# If not using a variable file, then make sure these ENV values match those in the model.
112-
ENV ADMIN_HOST="${ADMIN_HOST:-wlsadmin}" \
113-
ADMIN_PORT="${ADMIN_PORT:-7001}" \
114-
MS_NAME="${MS_NAME}" \
115-
MS_PORT="${MS_PORT:-8001}" \
116-
DEBUG_PORT="${DEBUG_PORT:-8453}" \
117-
DOMAIN_NAME="`awk '{print $1}' $PROPERTIES_FILE | grep ^DOMAIN_NAME= | cut -d "=" -f2`" \
118-
DOMAIN_HOME="$DOMAIN_HOME_PARENT/$DOMAIN_NAME" \
119-
WDT_HOME="${WDT_HOME}/weblogic-deploy" \
120-
PATH=$PATH:$DOMAIN_HOME/bin
121-
122110
VOLUME $DOMAIN_HOME
123111

124112
# Expose admin server, managed server port and domain debug port

samples/docker-domain/build.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44
#
55
#Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.
66
#
7+
. container-scripts/setEnv.sh ./simple-topology.properties
8+
9+
710
docker build \
11+
$BUILD_ARG \
812
--build-arg WDT_MODEL=simple-topology.yaml \
913
--build-arg WDT_VARIABLE=simple-topology.properties \
1014
--build-arg WDT_ARCHIVE=archive.zip \
Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
#!/bin/bash
2-
#
1+
#!/bin/bash ex
2+
33
# Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
44
# The Universal Permissive License (UPL), Version 1.0
5-
#
6-
# if [ $# > 0 ]; then
7-
# PROPERTIES_FILE=$1
8-
# fi
5+
BUILD_ARG=''
6+
if [ $# > 1 ]; then
7+
PROPERTIES_FILE=$1
8+
fi
99

1010
if [ ! -e "${PROPERTIES_FILE}" ]; then
1111
echo "A properties file with variable definitions should be supplied."
12-
exit 1
1312
fi
1413

1514
echo Export environment variables from the ${PROPERTIES_FILE} properties file
@@ -18,36 +17,37 @@ DOMAIN_DIR=`awk '{print $1}' $PROPERTIES_FILE | grep ^DOMAIN_NAME= | cut -d "="
1817
if [ ! -n "$DOMAIN_DIR" ]; then
1918
if [ -n "$DOMAIN_NAME" ]; then
2019
DOMAIN_DIR=$DOMAIN_NAME
21-
else
22-
DOMAIN_DIR=base_domain
2320
fi
2421
fi
25-
DOMAIN_NAME=$DOMAIN_DIR
26-
export DOMAIN_NAME
27-
echo DOMAIN_NAME=$DOMAIN_NAME
22+
if [ -n "$DOMAIN_DIR" ]; then
23+
export DOMAIN_DIR
24+
echo DOMAIN_DIR=$DOMAIN_DIR
25+
BUILD_ARG="$BUILD_ARG --build-arg DOMAIN_DIR=$DOMAIN_DIR"
26+
fi
2827

2928
ADMIN_HOST=`awk '{print $1}' $PROPERTIES_FILE | grep ^ADMIN_HOST= | cut -d "=" -f2`
3029
if [ -n "$ADMIN_HOST" ]; then
3130
export ADMIN_HOST
3231
echo ADMIN_HOST=$ADMIN_HOST
32+
BUILD_ARG="$BUILD_ARG --build-arg ADMIN_HOST=$ADMIN_HOST"
3333
fi
3434

3535
ADMIN_PORT=`awk '{print $1}' $PROPERTIES_FILE | grep ^ADMIN_PORT= | cut -d "=" -f2`
3636
if [ -n "$ADMIN_PORT" ]; then
3737
export ADMIN_PORT
3838
echo ADMIN_PORT=$ADMIN_PORT
39+
BUILD_ARG="$BUILD_ARG --build-arg ADMIN_PORT=$ADMIN_PORT"
3940
fi
4041

4142
MS_PORT=`awk '{print $1}' $PROPERTIES_FILE | grep ^MS_PORT= | cut -d "=" -f2`
4243
if [ -n "$MS_PORT" ]; then
43-
export MS_PORT
44-
echo MS_PORT=$MS_PORT
45-
fi
44+
export MS_PORT echo MS_PORT=$MS_PORT BUILD_ARG="$BUILD_ARG --build-arg MS_PORT=$MS_PORT" fi
4645

47-
DEBUG_PORT=`awk '{print $1}' $PROPERTIES_FILE | grep ^MS_PORT= | cut -d "=" -f2`
46+
DEBUG_PORT=`awk '{print $1}' $PROPERTIES_FILE | grep ^DEBUG_PORT= | cut -d "=" -f2`
4847
if [ -n "$DEBUG_PORT" ]; then
4948
export DEBUG_PORT
5049
echo DEBUG_PORT=$DEBUG_PORT
50+
BUILD_ARG="$BUILD_ARG --build-arg DEBUG_PORT=$DEBUG_PORT"
5151
fi
5252

53-
53+
echo BUILD_ARG=$BUILD_ARG

0 commit comments

Comments
 (0)