From 023dee119ec15a673b20471cfb86c4b31bf85307 Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Wed, 9 Apr 2025 10:10:17 +0100 Subject: [PATCH 01/16] Make initial copy of OAS 2025 dockerfiles --- OracleAnalytics/dockerfiles/2025/Checksum.md5 | 9 + OracleAnalytics/dockerfiles/2025/Dockerfile | 66 ++++++ .../dockerfiles/2025/createAndStartDomain.sh | 210 ++++++++++++++++++ OracleAnalytics/dockerfiles/2025/install.file | 13 ++ OracleAnalytics/dockerfiles/2025/oraInst.loc | 2 + .../dockerfiles/2025/wait_for_db.sh | 30 +++ 6 files changed, 330 insertions(+) create mode 100644 OracleAnalytics/dockerfiles/2025/Checksum.md5 create mode 100644 OracleAnalytics/dockerfiles/2025/Dockerfile create mode 100755 OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh create mode 100644 OracleAnalytics/dockerfiles/2025/install.file create mode 100644 OracleAnalytics/dockerfiles/2025/oraInst.loc create mode 100755 OracleAnalytics/dockerfiles/2025/wait_for_db.sh diff --git a/OracleAnalytics/dockerfiles/2025/Checksum.md5 b/OracleAnalytics/dockerfiles/2025/Checksum.md5 new file mode 100644 index 0000000000..966204a88d --- /dev/null +++ b/OracleAnalytics/dockerfiles/2025/Checksum.md5 @@ -0,0 +1,9 @@ +# Copyright (c) 2022 Oracle and/or its affiliates. +# +# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. +# +# Download Oracle Business Intelligence Installer 12.2.1.3 +# +# - http://www.oracle.com/technetwork/middleware/bi/downloads/default-3852322.html +# +223126d67c38042da06e7635bd9ffd1b Oracle_Analytics_Server_Linux_2022(6.4).zip diff --git a/OracleAnalytics/dockerfiles/2025/Dockerfile b/OracleAnalytics/dockerfiles/2025/Dockerfile new file mode 100644 index 0000000000..1209216c31 --- /dev/null +++ b/OracleAnalytics/dockerfiles/2025/Dockerfile @@ -0,0 +1,66 @@ +# Copyright (c) 2022 Oracle and/or its affiliates. +# +# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. +# +# ORACLE DOCKERFILES PROJECT +# -------------------------- +# This is the Dockerfile for Oracle Analytics Server 2022 (6.4) +# +# REQUIRED FILE(S) TO BUILD THIS IMAGE +# ---------------------------------- +# (1) Oracle_Analytics_Server_Linux_2022(6.4).zip +# Download the installer file from https://www-sites.oracle.com/solutions/business-analytics/analytics-server/analytics-server.html +# +# HOW TO BUILD THIS IMAGE +# ----------------------- +# Put all downloaded files in the same directory as this Dockerfile +# Run: +# $ docker build -t oracle/analyticsserver:6.4 . +# +# Pull base image +# --------------- +FROM oracle/fmw-infrastructure:12.2.1.4 + +# Labels +# ------ +LABEL "maintainer"="Padam Bengani " + +#Common ENV +#----------- +ENV ORACLE_HOME=/u01/oracle + +# Environment variables required for this build (do NOT change) +# (DOMAIN_NAME/HOME are reset here, to avoid FMW Infra environment leaking through) +# ------------------------------------------------------------- +ENV BI_DISTRO_ZIP1=Oracle_Analytics_Server_Linux_2022(6.4).zip \ + BI_INSTALLER1=Oracle_Analytics_Server_Linux_6.4.0.jar \ + DOMAIN_NAME="${BI_DOMAIN_NAME:-bi}" \ + DOMAINS_DIR=$ORACLE_HOME/user_projects/domains \ + DOMAIN_HOME=$ORACLE_HOME/user_projects/domains/${BI_DOMAIN_NAME:-bi} + +# Copy packages +# ------------- +COPY $BI_DISTRO_ZIP1 install.file oraInst.loc /u01/ + +# Install +#------------------------------------------------------------- +USER root + +# tools for installing and running BI +RUN yum -y install unzip hostname && rm -rf /var/cache/yum + +USER oracle +RUN unzip "/u01/$BI_DISTRO_ZIP1" -d /u01 && \ + "$JAVA_HOME/bin/java" -jar "/u01/$BI_INSTALLER1" -silent -responseFile /u01/install.file \ + -invPtrLoc /u01/oraInst.loc -ignoreSysPrereqs -force -novalidation ORACLE_HOME="$ORACLE_HOME" \ + INSTALL_TYPE="Oracle Analytics" && \ + rm "/u01/$BI_DISTRO_ZIP1" "/u01/$BI_INSTALLER1" /u01/oraInst.loc /u01/install.file + +WORKDIR $ORACLE_HOME + +# Prepare for Config +#------------------------------------------------------------- +EXPOSE 9500-9999 +COPY createAndStartDomain.sh wait_for_db.sh /u01/ + +CMD ["/u01/createAndStartDomain.sh"] diff --git a/OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh b/OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh new file mode 100755 index 0000000000..de5f7d84a7 --- /dev/null +++ b/OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh @@ -0,0 +1,210 @@ +#!/bin/bash -e +# +# Copyright (c) 2022 Oracle and/or its affiliates. +# +# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. +# +# Script to create a BI domain if it does not exist and then start the stack. + +usage() { +cat << EOF + +Usage: createAndStartDomain.sh +Start a Oracle Analytics Server domain, creating one if not yet available. + +The following variables are mandatory when creating the domain (i.e. when starting the container first time): + ORACLE_HOME - installation location (built into the image environment) + DOMAINS_DIR - directory containing DOMAIN_HOME (built into the image environment) + DOMAIN_NAME - Weblogic domain name (built into the image environment) + ADMIN_USERNAME - WebLogic admin username for the new domain + ADMIN_PASSWORD - Weblogic admin password + DB_HOST - Host name for database into which new schemas will be created + DB_PORT - Database listener port + DB_SERVICE - Database instance service name + DB_USERNAME - Database sysdba username + DB_PASSWORD - Database sysdba password + SCHEMA_PREFIX - Schema prefix for new schemas for the new domain + SCHEMA_PASSWORD - Password for all new schemas + +They can all be accepted as docker environment variables and/or Kubernetes secrets as environment variables. + +The following files can also be used, overriding any environment already set. + +For ADMIN_USERNAME/ADMIN_PASSWORD: + - /run/secrets/admin.txt, or + - /run/secrets/admin/username and /run/secrets/admin/password +For DB_USERNAME/DB_PASSWORD: + - /run/secrets/db.txt, or + - /run/secrets/db/username and /run/secrets/db/password +For SCHEMA_PASSWORD: + - /run/secrets/schema.txt, or + - /run/secrets/schema/password +For providing all keys: + - /run/secrets/config.txt + +Each *.txt file must contain lines of key=value pairs. This is intended docker secrets or docker run /v. +Each non-txt file must contain only the required value. This is intended for Kubernetes secrets. + +The following variable is optional: + DB_WAIT_TIMEOUT - Wait for the given timeout (in seconds) for the database to be ready. If not set, the database must already be ready. If set, then DB_USERNAME/PASSWORD must be set (via any means) as this account is used to check the connection. This setting is useful if the database is containerized and created at the same time as BI (e.g. via compose) + +EOF +exit 0 +} + +_V=0 +while getopts "hv" optname; do + case "$optname" in + "h") + usage + ;; + "v") + _V=1 + ;; + *) + usage + ;; + esac +done + +function log () { + if [[ $_V -eq 1 ]]; then + echo "$@" + fi +} + +# Note that APPLICATIONS_DIR is always $ORACLE_HOME/user_projects/applications. Thus DOMAINS_DIR remains co-located. +# Mounting in $ORACLE_HOME/user_projects from a host o/s directory will work (if its permissions are correctly set). +# Mounting in $ORACLE_HOME/user_projects/domains/$DOMAIN_NAME will fail with ScriptExecutor configuration error. +# Separately mounting in $ORACLE_HOME/user_projects/domains/$DOMAIN_NAME/bidata (SDD) will fail with $DOMAIN_HOME in use configuration error. +DOMAIN_HOME=$DOMAINS_DIR/${DOMAIN_NAME:-bi} + +# Use a touch file controlled by this script to ensure a container restart will know to start a successfully created domain. +# But don't allow start for a failed configuration (we could delete DOMAIN_HOME and retry instead?) +domainCheckFile=$DOMAIN_HOME/domainready.txt +if [ ! -f "$domainCheckFile" ] && [ -d "$DOMAIN_HOME" ]; then + echo "An attempt was made to start a container with an incomplete DOMAIN_HOME" + exit 2 +fi + +# Load parameters from various files, overriding any environment variables. +# Note we take care to not export these, so they are not visible to child processes +loadParametersFile() { + file=$1/$2 + if [ -f "$file" ]; then + if [ "txt" == "${file##*.}" ]; then + parameters=$(xargs < "$file") + log "Loaded from $file: $parameters" + eval "$(sed -e "s/=\(.*\)/='\1'/g" < "$file")" + else + parameterKey=$(echo "$2" | tr /a-z/ /A-Z/ | tr / _) + parameterValue=$(cat "$file") + parameter="$parameterKey='$parameterValue'" + log "Loaded from $file: $parameter" + eval "$parameter" + fi + fi +} + +parameterFileDir=/run/secrets +parameterFiles=(config.txt admin.txt db.txt schema.txt admin/username admin/password db/username db/password schema/password) +for parameterFile in "${parameterFiles[@]}"; do + loadParametersFile "$parameterFileDir" "$parameterFile" +done + +# validate that all required parameters have been set somehow +validateMandatoryParameter() { + key=$1 + if [ -z "${!key}" ]; then + echo "$key" + fi +} + +# TODO only ORACLE_HOME/DOMAIN_NAME/DOMAINS_DIR is mandatory once domain is configured +mandatoryParameters=(ORACLE_HOME DOMAIN_NAME DOMAINS_DIR ADMIN_USERNAME ADMIN_PASSWORD DB_HOST DB_PORT DB_SERVICE DB_USERNAME DB_PASSWORD SCHEMA_PREFIX SCHEMA_PASSWORD) +missingMandatoryParameters=() +for mandatoryParameter in "${mandatoryParameters[@]}"; do + missingParam=$(validateMandatoryParameter "$mandatoryParameter") + + if [[ ${missingParam} ]]; then + missingMandatoryParameters+=("${missingParam}") + fi +done + +if (( ${#missingMandatoryParameters[@]} != 0 )); then + missingParametersJoin=$(IFS="," ; echo "${missingMandatoryParameters[*]}") + echo "The following mandatory parameters are not set: $missingParametersJoin" + exit 1 +fi + +for parameter in "${mandatoryParameters[@]}"; do + log "Parameter: $parameter=${!parameter}" +done + +# If a wait timeout is set, block until the DB is available or the timeout is reached. +# This is useful when starting DB+BI via docker compose. +DB_WAIT_TIMEOUT=${DB_WAIT_TIMEOUT:-0} +if (( DB_WAIT_TIMEOUT > 0 )); then + if [ -z "$DB_USERNAME" ] || [ -z "$DB_PASSWORD" ]; then + echo "DB_USERNAME and DB_PASSWORD must be set if DB_WAIT_TIMEOUT is non-zero" + exit 3 + fi + set +e + echo "$DB_PASSWORD" | timeout "$DB_WAIT_TIMEOUT" /u01/wait_for_db.sh "$ORACLE_HOME" "$DB_USERNAME" "$DB_HOST" "$DB_PORT" "$DB_SERVICE" + exit_code="$?" + if [ ! "${exit_code}" -eq 0 ]; then + echo "Reached timeout waiting for DB to start - exiting" + exit 1 + fi + set -e +fi + +# Create Domain only if 1st execution +if [ ! -f "$domainCheckFile" ]; then + masterResponseFile=$ORACLE_HOME/bi/modules/oracle.bi.configassistant/response.txt + + tempDir=$(mktemp -dt "create_domain_XXXXXXXXXX") + trap 'rm -rf -- "$tempDir"; kill -TERM $PID' INT TERM + + responseFile=$tempDir/response.txt + cp "$masterResponseFile" "$responseFile" + + replacements=" -e \"s|@@DOMAIN_TYPE@@|DOMAIN_TYPE_EXPANDED|g\"" + replacements+=" -e \"s|@@CONFIGURE_ESSBASE@@|true|g\"" + replacements+=" -e \"s|@@CONFIGURE_BIEE@@|true|g\"" + replacements+=" -e \"s|@@CONFIGURE_BIP@@|true|g\"" + replacements+=" -e \"s|@@DOMAIN_NAME@@|$DOMAIN_NAME|g\"" + replacements+=" -e \"s|@@DOMAINS_DIR@@|$DOMAINS_DIR|g\"" + replacements+=" -e \"s|@@ADMIN_USER_NAME@@|$ADMIN_USERNAME|g\"" + replacements+=" -e \"s|@@ADMIN_PASSWORD@@|$ADMIN_PASSWORD|g\"" + replacements+=" -e \"s|@@SCHEMA_TYPE@@|SCHEMA_TYPE_NEW|g\"" + replacements+=" -e \"s|@@DB_TYPE@@|ORACLE|g\"" + replacements+=" -e \"s|@@DB_CONNECT_STRING@@|$DB_HOST:$DB_PORT:$DB_SERVICE|g\"" + replacements+=" -e \"s|@@DB_ADMIN_USERNAME@@|$DB_USERNAME|g\"" + replacements+=" -e \"s|@@DB_PASSWORD@@|$DB_PASSWORD|g\"" + replacements+=" -e \"s|@@PREFIX@@|$SCHEMA_PREFIX|g\"" + replacements+=" -e \"s|@@NEW_DB_SCHEMA_PASSWORD@@|$SCHEMA_PASSWORD|g\"" + replacements+=" -e \"s|@@NEW_DB_SCHEMA_PASSWORD@@|$SCHEMA_PASSWORD|g\"" + replacements+=" -e \"s|@@APPLICATION_TYPE@@|APPLICATION_TYPE_EMPTY|g\"" + replacements+=" -e \"s|@@AUTO_DROP_SCHEMAS@@|false|g\"" + replacements+=" -e \"s|@@DEFAULT_SI_KEY@@|ssi|g\"" + replacements+=" -e \"s|@@PORT_RANGE_START@@|9500|g\"" + replacements+=" -e \"s|@@PORT_RANGE_END@@|9999|g\"" + + eval sed -i "$replacements" "$responseFile" + + "$ORACLE_HOME"/bi/bin/config.sh -ignoreSysPrereqs -silent -responseFile "$responseFile" & + PID=$! + wait $PID + rm -f "$responseFile" + trap - INT TERM + + echo "Do not delete this file - it tells the container createAndStartDomain.sh script that the domain is ready to be started" > "$domainCheckFile" +else + "${DOMAIN_HOME}"/bitools/bin/start.sh +fi + +trap '${DOMAIN_HOME}/bitools/bin/stop.sh; kill -TERM $PID' INT TERM +tail -f "${DOMAIN_HOME}"/servers/AdminServer/logs/"${DOMAIN_NAME}".log & +PID=$! +wait $PID diff --git a/OracleAnalytics/dockerfiles/2025/install.file b/OracleAnalytics/dockerfiles/2025/install.file new file mode 100644 index 0000000000..dd7c525d95 --- /dev/null +++ b/OracleAnalytics/dockerfiles/2025/install.file @@ -0,0 +1,13 @@ +# Copyright (c) 2022 Oracle and/or its affiliates. +# +# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. +# +[ENGINE] + +#DO NOT CHANGE THIS. +Response File Version=1.0.0.0.0 + +[GENERIC] + +DECLINE_SECURITY_UPDATES=true +SECURITY_UPDATES_VIA_MYORACLESUPPORT=false diff --git a/OracleAnalytics/dockerfiles/2025/oraInst.loc b/OracleAnalytics/dockerfiles/2025/oraInst.loc new file mode 100644 index 0000000000..01f1964a55 --- /dev/null +++ b/OracleAnalytics/dockerfiles/2025/oraInst.loc @@ -0,0 +1,2 @@ +inventory_loc=/u01/oracle/.inventory +inst_group=oracle diff --git a/OracleAnalytics/dockerfiles/2025/wait_for_db.sh b/OracleAnalytics/dockerfiles/2025/wait_for_db.sh new file mode 100755 index 0000000000..ba676a5eae --- /dev/null +++ b/OracleAnalytics/dockerfiles/2025/wait_for_db.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Copyright (c) 2022 Oracle and/or its affiliates. +# +# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. + +if [ $# -ne 5 ]; then + echo usage: wait_for_db.sh oracle_home username host port service + echo password is provided on stdin + exit 1 +fi + +ORACLE_HOME=$1 +DB_USERNAME=$2 +DB_HOST=$3 +DB_PORT=$4 +DB_SERVICE=$5 +DB_PASSWORD=$(cat) + +# shellcheck source=/dev/null +. "$ORACLE_HOME"/oracle_common/common/bin/commEnv.sh + +echo "Waiting for DB" +until java -cp "$WEBLOGIC_CLASSPATH" utils.dbping ORACLE_THIN "$DB_USERNAME as sysdba" "$DB_PASSWORD" "$DB_HOST":"$DB_PORT"/"$DB_SERVICE" > /dev/null +do + echo "Waiting for DB" + sleep 10 +done +echo "DB is available" + From c73f2605cbe7f967a229d0782c5f614fa4115d25 Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Tue, 22 Apr 2025 12:24:13 +0100 Subject: [PATCH 02/16] Update Checksum and installer file names - OAS 2025 --- OracleAnalytics/dockerfiles/2025/Checksum.md5 | 2 +- OracleAnalytics/dockerfiles/2025/Dockerfile | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/OracleAnalytics/dockerfiles/2025/Checksum.md5 b/OracleAnalytics/dockerfiles/2025/Checksum.md5 index 966204a88d..f084debf76 100644 --- a/OracleAnalytics/dockerfiles/2025/Checksum.md5 +++ b/OracleAnalytics/dockerfiles/2025/Checksum.md5 @@ -6,4 +6,4 @@ # # - http://www.oracle.com/technetwork/middleware/bi/downloads/default-3852322.html # -223126d67c38042da06e7635bd9ffd1b Oracle_Analytics_Server_Linux_2022(6.4).zip +f6f7558bdc8f430fdccca49e3cbcd105 Oracle_Analytics_Server_Linux_2025(8.2).zip diff --git a/OracleAnalytics/dockerfiles/2025/Dockerfile b/OracleAnalytics/dockerfiles/2025/Dockerfile index 1209216c31..7063619a1a 100644 --- a/OracleAnalytics/dockerfiles/2025/Dockerfile +++ b/OracleAnalytics/dockerfiles/2025/Dockerfile @@ -4,18 +4,18 @@ # # ORACLE DOCKERFILES PROJECT # -------------------------- -# This is the Dockerfile for Oracle Analytics Server 2022 (6.4) +# This is the Dockerfile for Oracle Analytics Server 2025 (8.2) # # REQUIRED FILE(S) TO BUILD THIS IMAGE # ---------------------------------- -# (1) Oracle_Analytics_Server_Linux_2022(6.4).zip +# (1) Oracle_Analytics_Server_Linux_2025(8.2).zip # Download the installer file from https://www-sites.oracle.com/solutions/business-analytics/analytics-server/analytics-server.html # # HOW TO BUILD THIS IMAGE # ----------------------- # Put all downloaded files in the same directory as this Dockerfile # Run: -# $ docker build -t oracle/analyticsserver:6.4 . +# $ docker build -t oracle/analyticsserver:2025 . # # Pull base image # --------------- @@ -32,8 +32,8 @@ ENV ORACLE_HOME=/u01/oracle # Environment variables required for this build (do NOT change) # (DOMAIN_NAME/HOME are reset here, to avoid FMW Infra environment leaking through) # ------------------------------------------------------------- -ENV BI_DISTRO_ZIP1=Oracle_Analytics_Server_Linux_2022(6.4).zip \ - BI_INSTALLER1=Oracle_Analytics_Server_Linux_6.4.0.jar \ +ENV BI_DISTRO_ZIP1=Oracle_Analytics_Server_Linux_2025(8.2).zip \ + BI_INSTALLER1=Oracle_Analytics_Server_2025_Linux.jar \ DOMAIN_NAME="${BI_DOMAIN_NAME:-bi}" \ DOMAINS_DIR=$ORACLE_HOME/user_projects/domains \ DOMAIN_HOME=$ORACLE_HOME/user_projects/domains/${BI_DOMAIN_NAME:-bi} From 61bae70264ce5940f46ba5e74649ac0e18bf2921 Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Tue, 22 Apr 2025 12:31:25 +0100 Subject: [PATCH 03/16] Replace some new response file params --- OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh b/OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh index de5f7d84a7..11cba08236 100755 --- a/OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh +++ b/OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh @@ -121,7 +121,7 @@ validateMandatoryParameter() { } # TODO only ORACLE_HOME/DOMAIN_NAME/DOMAINS_DIR is mandatory once domain is configured -mandatoryParameters=(ORACLE_HOME DOMAIN_NAME DOMAINS_DIR ADMIN_USERNAME ADMIN_PASSWORD DB_HOST DB_PORT DB_SERVICE DB_USERNAME DB_PASSWORD SCHEMA_PREFIX SCHEMA_PASSWORD) +mandatoryParameters=(ORACLE_HOME DOMAIN_NAME DOMAINS_DIR ADMIN_USERNAME ADMIN_PASSWORD DB_HOST DB_PORT DB_SERVICE DB_USERNAME DB_PASSWORD SCHEMA_PREFIX SCHEMA_PASSWORD BI_APP_LITE_PASSWORD) missingMandatoryParameters=() for mandatoryParameter in "${mandatoryParameters[@]}"; do missingParam=$(validateMandatoryParameter "$mandatoryParameter") @@ -190,6 +190,9 @@ if [ ! -f "$domainCheckFile" ]; then replacements+=" -e \"s|@@DEFAULT_SI_KEY@@|ssi|g\"" replacements+=" -e \"s|@@PORT_RANGE_START@@|9500|g\"" replacements+=" -e \"s|@@PORT_RANGE_END@@|9999|g\"" + replacements+=" -e \"s|@@ENABLE_SSL@@|false|g\"" + replacements+=" -e \"s|@@DB_ROLE@@|SYSDBA|g\"" + replacements+=" -e \"s|@@APP_PASSWORD@@|$BI_APP_LITE_PASSWORD|g\"" eval sed -i "$replacements" "$responseFile" From f9d1ce8ea3cd7ec086e75b48236790bcce122571 Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Tue, 22 Apr 2025 12:38:32 +0100 Subject: [PATCH 04/16] Use dnf instead of yum in OAS 2025 Dockerfile --- OracleAnalytics/dockerfiles/2025/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OracleAnalytics/dockerfiles/2025/Dockerfile b/OracleAnalytics/dockerfiles/2025/Dockerfile index 7063619a1a..16d3e9e5b0 100644 --- a/OracleAnalytics/dockerfiles/2025/Dockerfile +++ b/OracleAnalytics/dockerfiles/2025/Dockerfile @@ -47,7 +47,7 @@ COPY $BI_DISTRO_ZIP1 install.file oraInst.loc /u01/ USER root # tools for installing and running BI -RUN yum -y install unzip hostname && rm -rf /var/cache/yum +RUN dnf -y install unzip hostname && dnf clean all USER oracle RUN unzip "/u01/$BI_DISTRO_ZIP1" -d /u01 && \ From df2713e8e4513097e4252134f12ccfa719489fed Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Tue, 22 Apr 2025 14:38:15 +0100 Subject: [PATCH 05/16] Update the comments in OAS 2025 Checksum.md5 file --- OracleAnalytics/dockerfiles/2025/Checksum.md5 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OracleAnalytics/dockerfiles/2025/Checksum.md5 b/OracleAnalytics/dockerfiles/2025/Checksum.md5 index f084debf76..456942164b 100644 --- a/OracleAnalytics/dockerfiles/2025/Checksum.md5 +++ b/OracleAnalytics/dockerfiles/2025/Checksum.md5 @@ -2,8 +2,8 @@ # # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. # -# Download Oracle Business Intelligence Installer 12.2.1.3 +# Download Oracle Analytics Server Installer 2025 # -# - http://www.oracle.com/technetwork/middleware/bi/downloads/default-3852322.html +# - https://www-sites.oracle.com/solutions/business-analytics/analytics-server/analytics-server.html # f6f7558bdc8f430fdccca49e3cbcd105 Oracle_Analytics_Server_Linux_2025(8.2).zip From 4eeaa8fe71c214c6ba7f60ce9c91d967c18f2007 Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Tue, 22 Apr 2025 14:40:47 +0100 Subject: [PATCH 06/16] Update copyright year - OAS 2025 --- OracleAnalytics/dockerfiles/2025/Checksum.md5 | 2 +- OracleAnalytics/dockerfiles/2025/Dockerfile | 2 +- OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh | 2 +- OracleAnalytics/dockerfiles/2025/install.file | 2 +- OracleAnalytics/dockerfiles/2025/wait_for_db.sh | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/OracleAnalytics/dockerfiles/2025/Checksum.md5 b/OracleAnalytics/dockerfiles/2025/Checksum.md5 index 456942164b..cf3f47f4f8 100644 --- a/OracleAnalytics/dockerfiles/2025/Checksum.md5 +++ b/OracleAnalytics/dockerfiles/2025/Checksum.md5 @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Oracle and/or its affiliates. +# Copyright (c) 2025 Oracle and/or its affiliates. # # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. # diff --git a/OracleAnalytics/dockerfiles/2025/Dockerfile b/OracleAnalytics/dockerfiles/2025/Dockerfile index 16d3e9e5b0..3630eeef10 100644 --- a/OracleAnalytics/dockerfiles/2025/Dockerfile +++ b/OracleAnalytics/dockerfiles/2025/Dockerfile @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Oracle and/or its affiliates. +# Copyright (c) 2025 Oracle and/or its affiliates. # # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. # diff --git a/OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh b/OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh index 11cba08236..1d390ee870 100755 --- a/OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh +++ b/OracleAnalytics/dockerfiles/2025/createAndStartDomain.sh @@ -1,6 +1,6 @@ #!/bin/bash -e # -# Copyright (c) 2022 Oracle and/or its affiliates. +# Copyright (c) 2025 Oracle and/or its affiliates. # # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. # diff --git a/OracleAnalytics/dockerfiles/2025/install.file b/OracleAnalytics/dockerfiles/2025/install.file index dd7c525d95..f6f20fd4b0 100644 --- a/OracleAnalytics/dockerfiles/2025/install.file +++ b/OracleAnalytics/dockerfiles/2025/install.file @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Oracle and/or its affiliates. +# Copyright (c) 2025 Oracle and/or its affiliates. # # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. # diff --git a/OracleAnalytics/dockerfiles/2025/wait_for_db.sh b/OracleAnalytics/dockerfiles/2025/wait_for_db.sh index ba676a5eae..6b17aff124 100755 --- a/OracleAnalytics/dockerfiles/2025/wait_for_db.sh +++ b/OracleAnalytics/dockerfiles/2025/wait_for_db.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright (c) 2022 Oracle and/or its affiliates. +# Copyright (c) 2025 Oracle and/or its affiliates. # # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. From aa0dafa24b2970692dcf22d73bc099b3d5551fd7 Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Tue, 22 Apr 2025 15:28:57 +0100 Subject: [PATCH 07/16] Update OracleAnalytics readme file to include OAS 2025 details --- OracleAnalytics/README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/OracleAnalytics/README.md b/OracleAnalytics/README.md index b7d1b583e4..4d95bb659c 100644 --- a/OracleAnalytics/README.md +++ b/OracleAnalytics/README.md @@ -3,8 +3,8 @@ Sample container configurations facilitate installation, configuration, and environment setup for DevOps users. This project includes quick start -[container](dockerfiles/) for Oracle Analytics Server 2022 (6.4) -based on Oracle Linux 7, Oracle JRE 8 (Server), +[container](dockerfiles/) for Oracle Analytics Server 2022 (6.4) based on Oracle Linux 7 and Oracle Analytics Server 2025 (8.2) +based on Oracle Linux 8, using Oracle JRE 8 (Server), and Oracle Fusion Middleware Infrastructure 12.2.1.4.0. For more information about Oracle Analytics Server, @@ -32,7 +32,7 @@ you must use PDB when creating the schemas because CDB isn’t supported. You can create an Oracle Database container by using an [OracleDatabase](https://github.com/oracle/docker-images/tree/master/OracleDatabase) image. -Follow these instructions to create a 12.1 or 12.2 Enterprise Edition database. +Follow these instructions to create a 12.1+ / 12.2+ / 19+ / 21c / 23ai Enterprise Edition database. ## Oracle Analytics Server Container Image Creation @@ -137,10 +137,16 @@ you must modify the previous `docker run` command to expose port 9514. For example: +6.4: ```bash docker run -it -p 9500:9500 -p 9502:9502 -p 9514:9514 -e ADMIN_USERNAME=weblogic -e ADMIN_PASSWORD= -e DB_HOST=database -e DB_PORT=1521 -e DB_SERVICE=ORCLPDB1 -e DB_USERNAME=sys -e DB_PASSWORD= -e SCHEMA_PREFIX=DEV -e SCHEMA_PASSWORD= oracle/analyticsserver:6.4-patch ``` +2025: +```bash +docker run -it -p 9500:9500 -p 9502:9502 -p 9514:9514 -e ADMIN_USERNAME=weblogic -e ADMIN_PASSWORD= -e DB_HOST=database -e DB_PORT=1521 -e DB_SERVICE=ORCLPDB1 -e DB_USERNAME=sys -e DB_PASSWORD= -e SCHEMA_PREFIX=DEV -e SCHEMA_PASSWORD= -e BI_APP_LITE_PASSWORD= oracle/analyticsserver:2025 +``` + ### Using a Host Directory for Persistent Data In the basic usage above, From b843f51534f991a67701ea08136c05261bd430ea Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Tue, 22 Apr 2025 16:27:23 +0100 Subject: [PATCH 08/16] Add OAS 2025 patches --- OracleAnalytics/patches/2025-patch/Dockerfile | 102 ++++++++++++++++++ OracleAnalytics/patches/2025-patch/README.md | 33 ++++++ 2 files changed, 135 insertions(+) create mode 100644 OracleAnalytics/patches/2025-patch/Dockerfile create mode 100644 OracleAnalytics/patches/2025-patch/README.md diff --git a/OracleAnalytics/patches/2025-patch/Dockerfile b/OracleAnalytics/patches/2025-patch/Dockerfile new file mode 100644 index 0000000000..d7660ab8cf --- /dev/null +++ b/OracleAnalytics/patches/2025-patch/Dockerfile @@ -0,0 +1,102 @@ +# Copyright (c) 2025 Oracle and/or its affiliates. +# +# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. +# +# ORACLE DOCKERFILES PROJECT +# -------------------------- +# This Dockerfile extends the Oracle Analytics Server 2025 (8.2), and applies necessary +# patches required. + +# REQUIRED FILES TO BUILD THIS IMAGE +# ---------------------------------- +# (1) p37804819_122140_Generic.zip +# (2) p34809489_122140_Generic.zip +# (3) p36649916_122140_Generic.zip +# (4) p37284722_122140_Generic.zip +# (5) p37526122_122140_Linux-x86-64.zip +# (6) p37684007_122140_Generic.zip +# (7) p36316422_122140_Generic.zip +# (8) p36946553_122140_Generic.zip +# (9) p37388935_122140_Generic.zip +# (10) p37665839_122140_Linux-x86-64.zip + +# Download the patches from https://support.oracle.com +# +# HOW TO BUILD THIS IMAGE +# ----------------------- +# Put all downloaded files in the same directory as this Dockerfile +# Run: +# $ docker build --force-rm=true --no-cache=true -t oracle/analyticsserver:2025-patch . +# + +# Pull base image +# --------------- +FROM oracle/analyticsserver:2025 + +# Labels +# ------ +LABEL "maintainer"="Padam Bengani " + +# Common ENV +#----------- +ENV OPATCH_NO_FUSER=true + +# Environment variables required for this build (do NOT change) +# ------------------------------------------------------------- +ENV PATCH_PKG_37804819="p37804819_122140_Generic.zip" \ + PATCH_PKG_34809489="p34809489_122140_Generic.zip" \ + PATCH_PKG_36649916="p36649916_122140_Generic.zip" \ + PATCH_PKG_37284722="p37284722_122140_Generic.zip" \ + PATCH_PKG_37526122="p37526122_122140_Linux-x86-64.zip" \ + PATCH_PKG_37684007="p37684007_122140_Generic.zip" \ + PATCH_PKG_36316422="p36316422_122140_Generic.zip" \ + PATCH_PKG_36946553="p36946553_122140_Generic.zip" \ + PATCH_PKG_37388935="p37388935_122140_Generic.zip" \ + PATCH_PKG_37665839="p37665839_122140_Linux-x86-64.zip" + +# Copy supplemental package and scripts +# -------------------------------- +COPY --chown=oracle:oracle \ + $PATCH_PKG_37804819 $PATCH_PKG_34809489 $PATCH_PKG_36649916 $PATCH_PKG_37284722 \ + $PATCH_PKG_37526122 $PATCH_PKG_37684007 $PATCH_PKG_36316422 $PATCH_PKG_36946553 \ + $PATCH_PKG_37388935 $PATCH_PKG_37665839 /u01/ + +# Installation of Supplemental Quick Installer and Patches +# -------------------------------------------------------- +USER oracle + +RUN unzip "/u01/$PATCH_PKG_37804819" -d /u01 && \ + chmod +x /u01/WLS_SPB_12.2.1.4*/tools/spbat/generic/SPBAT/spbat.sh && \ + /u01/WLS_SPB_12.2.1.4*/tools/spbat/generic/SPBAT/spbat.sh -phase apply -oracle_home "$ORACLE_HOME" && \ + rm "/u01/$PATCH_PKG_37804819" && \ + unzip "/u01/$PATCH_PKG_34809489" -d /u01 && \ + "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/34809489 && \ + rm "/u01/$PATCH_PKG_34809489" && \ + unzip "/u01/$PATCH_PKG_36649916" -d /u01 && \ + "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/36649916 && \ + rm "/u01/$PATCH_PKG_36649916" && \ + unzip "/u01/$PATCH_PKG_37284722" -d /u01 && \ + "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/37284722 && \ + rm "/u01/$PATCH_PKG_37284722" && \ + unzip "/u01/$PATCH_PKG_37526122" -d /u01 && \ + "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/37526122 && \ + rm "/u01/$PATCH_PKG_37526122" && \ + unzip "/u01/$PATCH_PKG_37684007" -d /u01 && \ + "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/37684007 && \ + rm "/u01/$PATCH_PKG_37684007" && \ + unzip "/u01/$PATCH_PKG_36316422" -d /u01 && \ + "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/36316422 && \ + rm "/u01/$PATCH_PKG_36316422" && \ + unzip "/u01/$PATCH_PKG_36946553" -d /u01 && \ + "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/36946553 && \ + rm "/u01/$PATCH_PKG_36946553" && \ + unzip "/u01/$PATCH_PKG_37388935" -d /u01 && \ + "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/37388935 && \ + rm "/u01/$PATCH_PKG_37388935" && \ + unzip "/u01/$PATCH_PKG_37665839" -d /u01 && \ + "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/37665839 && \ + rm "/u01/$PATCH_PKG_37665839" + +WORKDIR ${ORACLE_HOME} + +CMD ["/u01/createAndStartDomain.sh"] diff --git a/OracleAnalytics/patches/2025-patch/README.md b/OracleAnalytics/patches/2025-patch/README.md new file mode 100644 index 0000000000..620b454551 --- /dev/null +++ b/OracleAnalytics/patches/2025-patch/README.md @@ -0,0 +1,33 @@ +# Build a Oracle Analytics Server 2025 (8.2) Patched Image + +This Dockerfile extends the Oracle Analytics Server 2025 (8.2) image, +and applies necessary patches. + +## How to build and run + +First make sure you have built `oracle/analyticsserver:2025`. + +Download the following patches from +[My Oracle Support](https://support.oracle.com) +and place them in the same directory as this README. + +1. p37804819_122140_Generic.zip +2. p34809489_122140_Generic.zip +3. p36649916_122140_Generic.zip +4. p37284722_122140_Generic.zip +5. p37526122_122140_Linux-x86-64.zip +6. p37684007_122140_Generic.zip +7. p36316422_122140_Generic.zip +8. p36946553_122140_Generic.zip +9. p37388935_122140_Generic.zip +10. p37665839_122140_Linux-x86-64.zip + +To build, run: + +```bash +docker build --force-rm=true --no-cache=true -t oracle/analyticsserver:2025-patch . +``` + +## Copyright + +Copyright (c) 2025 Oracle and/or its affiliates. From 7405ea23aaaf81dfbd8712412e02985e383990ca Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Tue, 22 Apr 2025 18:14:17 +0100 Subject: [PATCH 09/16] Change the order of patches for OAS 2025 --- OracleAnalytics/patches/2025-patch/Dockerfile | 20 +++++++++---------- OracleAnalytics/patches/2025-patch/README.md | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/OracleAnalytics/patches/2025-patch/Dockerfile b/OracleAnalytics/patches/2025-patch/Dockerfile index d7660ab8cf..774a349fcd 100644 --- a/OracleAnalytics/patches/2025-patch/Dockerfile +++ b/OracleAnalytics/patches/2025-patch/Dockerfile @@ -13,11 +13,11 @@ # (2) p34809489_122140_Generic.zip # (3) p36649916_122140_Generic.zip # (4) p37284722_122140_Generic.zip -# (5) p37526122_122140_Linux-x86-64.zip -# (6) p37684007_122140_Generic.zip -# (7) p36316422_122140_Generic.zip -# (8) p36946553_122140_Generic.zip -# (9) p37388935_122140_Generic.zip +# (5) p37684007_122140_Generic.zip +# (6) p36316422_122140_Generic.zip +# (7) p36946553_122140_Generic.zip +# (8) p37388935_122140_Generic.zip +# (9) p37526122_122140_Linux-x86-64.zip # (10) p37665839_122140_Linux-x86-64.zip # Download the patches from https://support.oracle.com @@ -47,11 +47,11 @@ ENV PATCH_PKG_37804819="p37804819_122140_Generic.zip" \ PATCH_PKG_34809489="p34809489_122140_Generic.zip" \ PATCH_PKG_36649916="p36649916_122140_Generic.zip" \ PATCH_PKG_37284722="p37284722_122140_Generic.zip" \ - PATCH_PKG_37526122="p37526122_122140_Linux-x86-64.zip" \ PATCH_PKG_37684007="p37684007_122140_Generic.zip" \ PATCH_PKG_36316422="p36316422_122140_Generic.zip" \ PATCH_PKG_36946553="p36946553_122140_Generic.zip" \ PATCH_PKG_37388935="p37388935_122140_Generic.zip" \ + PATCH_PKG_37526122="p37526122_122140_Linux-x86-64.zip" \ PATCH_PKG_37665839="p37665839_122140_Linux-x86-64.zip" # Copy supplemental package and scripts @@ -78,9 +78,6 @@ RUN unzip "/u01/$PATCH_PKG_37804819" -d /u01 && \ unzip "/u01/$PATCH_PKG_37284722" -d /u01 && \ "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/37284722 && \ rm "/u01/$PATCH_PKG_37284722" && \ - unzip "/u01/$PATCH_PKG_37526122" -d /u01 && \ - "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/37526122 && \ - rm "/u01/$PATCH_PKG_37526122" && \ unzip "/u01/$PATCH_PKG_37684007" -d /u01 && \ "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/37684007 && \ rm "/u01/$PATCH_PKG_37684007" && \ @@ -93,8 +90,11 @@ RUN unzip "/u01/$PATCH_PKG_37804819" -d /u01 && \ unzip "/u01/$PATCH_PKG_37388935" -d /u01 && \ "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/37388935 && \ rm "/u01/$PATCH_PKG_37388935" && \ + unzip "/u01/$PATCH_PKG_37526122" -d /u01 && \ + "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/37526122 && \ + rm "/u01/$PATCH_PKG_37526122" && \ unzip "/u01/$PATCH_PKG_37665839" -d /u01 && \ - "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/37665839 && \ + "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/36749613 && \ rm "/u01/$PATCH_PKG_37665839" WORKDIR ${ORACLE_HOME} diff --git a/OracleAnalytics/patches/2025-patch/README.md b/OracleAnalytics/patches/2025-patch/README.md index 620b454551..10067f9692 100644 --- a/OracleAnalytics/patches/2025-patch/README.md +++ b/OracleAnalytics/patches/2025-patch/README.md @@ -15,11 +15,11 @@ and place them in the same directory as this README. 2. p34809489_122140_Generic.zip 3. p36649916_122140_Generic.zip 4. p37284722_122140_Generic.zip -5. p37526122_122140_Linux-x86-64.zip -6. p37684007_122140_Generic.zip -7. p36316422_122140_Generic.zip -8. p36946553_122140_Generic.zip -9. p37388935_122140_Generic.zip +5. p37684007_122140_Generic.zip +6. p36316422_122140_Generic.zip +7. p36946553_122140_Generic.zip +8. p37388935_122140_Generic.zip +9. p37526122_122140_Linux-x86-64.zip 10. p37665839_122140_Linux-x86-64.zip To build, run: From bbb159fa8e26772fcd2a9c3718b2159811d35de0 Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Wed, 23 Apr 2025 12:20:52 +0100 Subject: [PATCH 10/16] Install libararies required for patching OAS 2025 --- OracleAnalytics/patches/2025-patch/Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/OracleAnalytics/patches/2025-patch/Dockerfile b/OracleAnalytics/patches/2025-patch/Dockerfile index 774a349fcd..9c988c6a8c 100644 --- a/OracleAnalytics/patches/2025-patch/Dockerfile +++ b/OracleAnalytics/patches/2025-patch/Dockerfile @@ -37,6 +37,13 @@ FROM oracle/analyticsserver:2025 # ------ LABEL "maintainer"="Padam Bengani " +# Install +#------------------------------------------------------------- +USER root + +# tools for applying patches +RUN dnf install -y binutils make gcc glibc-devel && dnf clean all + # Common ENV #----------- ENV OPATCH_NO_FUSER=true From 210926ed296ab280d0c60344d8d2e252bb59ed5e Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Wed, 23 Apr 2025 15:55:21 +0100 Subject: [PATCH 11/16] Install libnsl for OAS 2025 --- OracleAnalytics/dockerfiles/2025/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OracleAnalytics/dockerfiles/2025/Dockerfile b/OracleAnalytics/dockerfiles/2025/Dockerfile index 3630eeef10..aa17bd9723 100644 --- a/OracleAnalytics/dockerfiles/2025/Dockerfile +++ b/OracleAnalytics/dockerfiles/2025/Dockerfile @@ -47,7 +47,7 @@ COPY $BI_DISTRO_ZIP1 install.file oraInst.loc /u01/ USER root # tools for installing and running BI -RUN dnf -y install unzip hostname && dnf clean all +RUN dnf -y install unzip hostname libnsl && dnf clean all USER oracle RUN unzip "/u01/$BI_DISTRO_ZIP1" -d /u01 && \ From 3f2d7934ce86aa9f323d4827394ed389b1dfb9a6 Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Fri, 25 Apr 2025 11:33:15 +0100 Subject: [PATCH 12/16] Use 2025-patch in the example docker command for OAS 2025 --- OracleAnalytics/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OracleAnalytics/README.md b/OracleAnalytics/README.md index 4d95bb659c..38896e9868 100644 --- a/OracleAnalytics/README.md +++ b/OracleAnalytics/README.md @@ -144,7 +144,7 @@ docker run -it -p 9500:9500 -p 9502:9502 -p 9514:9514 -e ADMIN_USERNAME=weblogic 2025: ```bash -docker run -it -p 9500:9500 -p 9502:9502 -p 9514:9514 -e ADMIN_USERNAME=weblogic -e ADMIN_PASSWORD= -e DB_HOST=database -e DB_PORT=1521 -e DB_SERVICE=ORCLPDB1 -e DB_USERNAME=sys -e DB_PASSWORD= -e SCHEMA_PREFIX=DEV -e SCHEMA_PASSWORD= -e BI_APP_LITE_PASSWORD= oracle/analyticsserver:2025 +docker run -it -p 9500:9500 -p 9502:9502 -p 9514:9514 -e ADMIN_USERNAME=weblogic -e ADMIN_PASSWORD= -e DB_HOST=database -e DB_PORT=1521 -e DB_SERVICE=ORCLPDB1 -e DB_USERNAME=sys -e DB_PASSWORD= -e SCHEMA_PREFIX=DEV -e SCHEMA_PASSWORD= -e BI_APP_LITE_PASSWORD= oracle/analyticsserver:2025-patch ``` ### Using a Host Directory for Persistent Data From ec6b6dde2ffc8c687b06ff4884b3de458119d86e Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Wed, 30 Apr 2025 15:22:21 +0100 Subject: [PATCH 13/16] Update OracleAnalytics to reference OAS 2025 only --- OracleAnalytics/README.md | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/OracleAnalytics/README.md b/OracleAnalytics/README.md index 38896e9868..62fd3b4b66 100644 --- a/OracleAnalytics/README.md +++ b/OracleAnalytics/README.md @@ -3,8 +3,8 @@ Sample container configurations facilitate installation, configuration, and environment setup for DevOps users. This project includes quick start -[container](dockerfiles/) for Oracle Analytics Server 2022 (6.4) based on Oracle Linux 7 and Oracle Analytics Server 2025 (8.2) -based on Oracle Linux 8, using Oracle JRE 8 (Server), +[container](dockerfiles/) for Oracle Analytics Server 2025 (8.2) +based on Oracle Linux 8, Oracle JRE 8 (Server), and Oracle Fusion Middleware Infrastructure 12.2.1.4.0. For more information about Oracle Analytics Server, @@ -41,8 +41,8 @@ Before you can build a BI image, you will need to build the [Oracle Java](https: ### Building the Oracle Analytics Server Image Download the binaries for -[Oracle Analytics Server 2022 (6.4)](https://www-sites.oracle.com/solutions/business-analytics/analytics-server/analytics-server.html) -for Linux x86-64-bit into the folder `OracleAnalytics/dockerfiles/6.4`. +[Oracle Analytics Server 2025 (8.2)](https://www-sites.oracle.com/solutions/business-analytics/analytics-server/analytics-server.html) +for Linux x86-64-bit into the folder `OracleAnalytics/dockerfiles/2025`. If you need a proxy for the host to access yum.oracle.com during build, first set up the appropriate environment. For example: @@ -57,22 +57,22 @@ Build the image: ```bash cd OracleAnalytics/dockerfiles -./buildContainerImage.sh -v 6.4 +./buildContainerImage.sh -v 2025 ``` Sample command(s) for users who don't want to use the above script to build the image: ```bash # without proxy -docker build --force-rm=true --no-cache=true -t oracle/analyticsserver:6.4 -f Dockerfile . +docker build --force-rm=true --no-cache=true -t oracle/analyticsserver:2025 -f Dockerfile . # with proxy -docker build --force-rm=true --no-cache=true --build-arg http_proxy=http://myproxy.example.com:80 --build-arg https_proxy=https://myproxy.example.com:80 -t oracle/analyticsserver:6.4 -f Dockerfile . +docker build --force-rm=true --no-cache=true --build-arg http_proxy=http://myproxy.example.com:80 --build-arg https_proxy=https://myproxy.example.com:80 -t oracle/analyticsserver:2025 -f Dockerfile . ``` ### Building the Oracle Analytics Server Patched Image -See the [Oracle Analytics patched image documentation](./patches/6.4-patch) for details. +See the [Oracle Analytics patched image documentation](./patches/2025-patch) for details. ## Creating an Oracle Analytics Server Container @@ -108,7 +108,7 @@ The following variables are predefined: For example: ```bash -docker run -d --name bi -p 9500:9500 -p 9502:9502 -e ADMIN_USERNAME=weblogic -e ADMIN_PASSWORD= -e DB_HOST=database -e DB_PORT=1521 -e DB_SERVICE=ORCLPDB1 -e DB_USERNAME=sys -e DB_PASSWORD= -e SCHEMA_PREFIX=DEV -e SCHEMA_PASSWORD= oracle/analyticsserver:6.4-patch +docker run -d --name bi -p 9500:9500 -p 9502:9502 -e ADMIN_USERNAME=weblogic -e ADMIN_PASSWORD= -e DB_HOST=database -e DB_PORT=1521 -e DB_SERVICE=ORCLPDB1 -e DB_USERNAME=sys -e DB_PASSWORD= -e SCHEMA_PREFIX=DEV -e SCHEMA_PASSWORD= oracle/analyticsserver:2025-patch ``` Change _<...password>_ to your required values, and DB values to match your database. @@ -137,12 +137,6 @@ you must modify the previous `docker run` command to expose port 9514. For example: -6.4: -```bash -docker run -it -p 9500:9500 -p 9502:9502 -p 9514:9514 -e ADMIN_USERNAME=weblogic -e ADMIN_PASSWORD= -e DB_HOST=database -e DB_PORT=1521 -e DB_SERVICE=ORCLPDB1 -e DB_USERNAME=sys -e DB_PASSWORD= -e SCHEMA_PREFIX=DEV -e SCHEMA_PASSWORD= oracle/analyticsserver:6.4-patch -``` - -2025: ```bash docker run -it -p 9500:9500 -p 9502:9502 -p 9514:9514 -e ADMIN_USERNAME=weblogic -e ADMIN_PASSWORD= -e DB_HOST=database -e DB_PORT=1521 -e DB_SERVICE=ORCLPDB1 -e DB_USERNAME=sys -e DB_PASSWORD= -e SCHEMA_PREFIX=DEV -e SCHEMA_PASSWORD= -e BI_APP_LITE_PASSWORD= oracle/analyticsserver:2025-patch ``` @@ -183,7 +177,7 @@ For example, 3. Start a BI container that uses the database by name: - $ docker run --name bi --network=bi_net -e DB_HOST=database ...... oracle/analyticsserver:6.4-patch + $ docker run --name bi --network=bi_net -e DB_HOST=database ...... oracle/analyticsserver:2025-patch Note: In the above container run examples, other parameters are omitted for clarity. From b7718550147b02f8dfb1bdf63c303a651138a15f Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Wed, 30 Apr 2025 15:25:22 +0100 Subject: [PATCH 14/16] Update Copyright year in OracleAnalytics' README file --- OracleAnalytics/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OracleAnalytics/README.md b/OracleAnalytics/README.md index 62fd3b4b66..8b6c28fd5b 100644 --- a/OracleAnalytics/README.md +++ b/OracleAnalytics/README.md @@ -247,4 +247,4 @@ released under the Universal Permissive License v 1.0 as shown at Date: Wed, 30 Apr 2025 15:33:32 +0100 Subject: [PATCH 15/16] Remove Oracle Analytics Server 6.4 dockerfiles as this version is no longer supported --- OracleAnalytics/dockerfiles/6.4/Checksum.md5 | 9 - OracleAnalytics/dockerfiles/6.4/Dockerfile | 66 ------ .../dockerfiles/6.4/createAndStartDomain.sh | 210 ------------------ OracleAnalytics/dockerfiles/6.4/install.file | 13 -- OracleAnalytics/dockerfiles/6.4/oraInst.loc | 2 - .../dockerfiles/6.4/wait_for_db.sh | 30 --- OracleAnalytics/patches/6.4-patch/Dockerfile | 105 --------- OracleAnalytics/patches/6.4-patch/README.md | 34 --- 8 files changed, 469 deletions(-) delete mode 100644 OracleAnalytics/dockerfiles/6.4/Checksum.md5 delete mode 100644 OracleAnalytics/dockerfiles/6.4/Dockerfile delete mode 100755 OracleAnalytics/dockerfiles/6.4/createAndStartDomain.sh delete mode 100644 OracleAnalytics/dockerfiles/6.4/install.file delete mode 100644 OracleAnalytics/dockerfiles/6.4/oraInst.loc delete mode 100755 OracleAnalytics/dockerfiles/6.4/wait_for_db.sh delete mode 100644 OracleAnalytics/patches/6.4-patch/Dockerfile delete mode 100644 OracleAnalytics/patches/6.4-patch/README.md diff --git a/OracleAnalytics/dockerfiles/6.4/Checksum.md5 b/OracleAnalytics/dockerfiles/6.4/Checksum.md5 deleted file mode 100644 index 966204a88d..0000000000 --- a/OracleAnalytics/dockerfiles/6.4/Checksum.md5 +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright (c) 2022 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. -# -# Download Oracle Business Intelligence Installer 12.2.1.3 -# -# - http://www.oracle.com/technetwork/middleware/bi/downloads/default-3852322.html -# -223126d67c38042da06e7635bd9ffd1b Oracle_Analytics_Server_Linux_2022(6.4).zip diff --git a/OracleAnalytics/dockerfiles/6.4/Dockerfile b/OracleAnalytics/dockerfiles/6.4/Dockerfile deleted file mode 100644 index 1209216c31..0000000000 --- a/OracleAnalytics/dockerfiles/6.4/Dockerfile +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright (c) 2022 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Analytics Server 2022 (6.4) -# -# REQUIRED FILE(S) TO BUILD THIS IMAGE -# ---------------------------------- -# (1) Oracle_Analytics_Server_Linux_2022(6.4).zip -# Download the installer file from https://www-sites.oracle.com/solutions/business-analytics/analytics-server/analytics-server.html -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/analyticsserver:6.4 . -# -# Pull base image -# --------------- -FROM oracle/fmw-infrastructure:12.2.1.4 - -# Labels -# ------ -LABEL "maintainer"="Padam Bengani " - -#Common ENV -#----------- -ENV ORACLE_HOME=/u01/oracle - -# Environment variables required for this build (do NOT change) -# (DOMAIN_NAME/HOME are reset here, to avoid FMW Infra environment leaking through) -# ------------------------------------------------------------- -ENV BI_DISTRO_ZIP1=Oracle_Analytics_Server_Linux_2022(6.4).zip \ - BI_INSTALLER1=Oracle_Analytics_Server_Linux_6.4.0.jar \ - DOMAIN_NAME="${BI_DOMAIN_NAME:-bi}" \ - DOMAINS_DIR=$ORACLE_HOME/user_projects/domains \ - DOMAIN_HOME=$ORACLE_HOME/user_projects/domains/${BI_DOMAIN_NAME:-bi} - -# Copy packages -# ------------- -COPY $BI_DISTRO_ZIP1 install.file oraInst.loc /u01/ - -# Install -#------------------------------------------------------------- -USER root - -# tools for installing and running BI -RUN yum -y install unzip hostname && rm -rf /var/cache/yum - -USER oracle -RUN unzip "/u01/$BI_DISTRO_ZIP1" -d /u01 && \ - "$JAVA_HOME/bin/java" -jar "/u01/$BI_INSTALLER1" -silent -responseFile /u01/install.file \ - -invPtrLoc /u01/oraInst.loc -ignoreSysPrereqs -force -novalidation ORACLE_HOME="$ORACLE_HOME" \ - INSTALL_TYPE="Oracle Analytics" && \ - rm "/u01/$BI_DISTRO_ZIP1" "/u01/$BI_INSTALLER1" /u01/oraInst.loc /u01/install.file - -WORKDIR $ORACLE_HOME - -# Prepare for Config -#------------------------------------------------------------- -EXPOSE 9500-9999 -COPY createAndStartDomain.sh wait_for_db.sh /u01/ - -CMD ["/u01/createAndStartDomain.sh"] diff --git a/OracleAnalytics/dockerfiles/6.4/createAndStartDomain.sh b/OracleAnalytics/dockerfiles/6.4/createAndStartDomain.sh deleted file mode 100755 index de5f7d84a7..0000000000 --- a/OracleAnalytics/dockerfiles/6.4/createAndStartDomain.sh +++ /dev/null @@ -1,210 +0,0 @@ -#!/bin/bash -e -# -# Copyright (c) 2022 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. -# -# Script to create a BI domain if it does not exist and then start the stack. - -usage() { -cat << EOF - -Usage: createAndStartDomain.sh -Start a Oracle Analytics Server domain, creating one if not yet available. - -The following variables are mandatory when creating the domain (i.e. when starting the container first time): - ORACLE_HOME - installation location (built into the image environment) - DOMAINS_DIR - directory containing DOMAIN_HOME (built into the image environment) - DOMAIN_NAME - Weblogic domain name (built into the image environment) - ADMIN_USERNAME - WebLogic admin username for the new domain - ADMIN_PASSWORD - Weblogic admin password - DB_HOST - Host name for database into which new schemas will be created - DB_PORT - Database listener port - DB_SERVICE - Database instance service name - DB_USERNAME - Database sysdba username - DB_PASSWORD - Database sysdba password - SCHEMA_PREFIX - Schema prefix for new schemas for the new domain - SCHEMA_PASSWORD - Password for all new schemas - -They can all be accepted as docker environment variables and/or Kubernetes secrets as environment variables. - -The following files can also be used, overriding any environment already set. - -For ADMIN_USERNAME/ADMIN_PASSWORD: - - /run/secrets/admin.txt, or - - /run/secrets/admin/username and /run/secrets/admin/password -For DB_USERNAME/DB_PASSWORD: - - /run/secrets/db.txt, or - - /run/secrets/db/username and /run/secrets/db/password -For SCHEMA_PASSWORD: - - /run/secrets/schema.txt, or - - /run/secrets/schema/password -For providing all keys: - - /run/secrets/config.txt - -Each *.txt file must contain lines of key=value pairs. This is intended docker secrets or docker run /v. -Each non-txt file must contain only the required value. This is intended for Kubernetes secrets. - -The following variable is optional: - DB_WAIT_TIMEOUT - Wait for the given timeout (in seconds) for the database to be ready. If not set, the database must already be ready. If set, then DB_USERNAME/PASSWORD must be set (via any means) as this account is used to check the connection. This setting is useful if the database is containerized and created at the same time as BI (e.g. via compose) - -EOF -exit 0 -} - -_V=0 -while getopts "hv" optname; do - case "$optname" in - "h") - usage - ;; - "v") - _V=1 - ;; - *) - usage - ;; - esac -done - -function log () { - if [[ $_V -eq 1 ]]; then - echo "$@" - fi -} - -# Note that APPLICATIONS_DIR is always $ORACLE_HOME/user_projects/applications. Thus DOMAINS_DIR remains co-located. -# Mounting in $ORACLE_HOME/user_projects from a host o/s directory will work (if its permissions are correctly set). -# Mounting in $ORACLE_HOME/user_projects/domains/$DOMAIN_NAME will fail with ScriptExecutor configuration error. -# Separately mounting in $ORACLE_HOME/user_projects/domains/$DOMAIN_NAME/bidata (SDD) will fail with $DOMAIN_HOME in use configuration error. -DOMAIN_HOME=$DOMAINS_DIR/${DOMAIN_NAME:-bi} - -# Use a touch file controlled by this script to ensure a container restart will know to start a successfully created domain. -# But don't allow start for a failed configuration (we could delete DOMAIN_HOME and retry instead?) -domainCheckFile=$DOMAIN_HOME/domainready.txt -if [ ! -f "$domainCheckFile" ] && [ -d "$DOMAIN_HOME" ]; then - echo "An attempt was made to start a container with an incomplete DOMAIN_HOME" - exit 2 -fi - -# Load parameters from various files, overriding any environment variables. -# Note we take care to not export these, so they are not visible to child processes -loadParametersFile() { - file=$1/$2 - if [ -f "$file" ]; then - if [ "txt" == "${file##*.}" ]; then - parameters=$(xargs < "$file") - log "Loaded from $file: $parameters" - eval "$(sed -e "s/=\(.*\)/='\1'/g" < "$file")" - else - parameterKey=$(echo "$2" | tr /a-z/ /A-Z/ | tr / _) - parameterValue=$(cat "$file") - parameter="$parameterKey='$parameterValue'" - log "Loaded from $file: $parameter" - eval "$parameter" - fi - fi -} - -parameterFileDir=/run/secrets -parameterFiles=(config.txt admin.txt db.txt schema.txt admin/username admin/password db/username db/password schema/password) -for parameterFile in "${parameterFiles[@]}"; do - loadParametersFile "$parameterFileDir" "$parameterFile" -done - -# validate that all required parameters have been set somehow -validateMandatoryParameter() { - key=$1 - if [ -z "${!key}" ]; then - echo "$key" - fi -} - -# TODO only ORACLE_HOME/DOMAIN_NAME/DOMAINS_DIR is mandatory once domain is configured -mandatoryParameters=(ORACLE_HOME DOMAIN_NAME DOMAINS_DIR ADMIN_USERNAME ADMIN_PASSWORD DB_HOST DB_PORT DB_SERVICE DB_USERNAME DB_PASSWORD SCHEMA_PREFIX SCHEMA_PASSWORD) -missingMandatoryParameters=() -for mandatoryParameter in "${mandatoryParameters[@]}"; do - missingParam=$(validateMandatoryParameter "$mandatoryParameter") - - if [[ ${missingParam} ]]; then - missingMandatoryParameters+=("${missingParam}") - fi -done - -if (( ${#missingMandatoryParameters[@]} != 0 )); then - missingParametersJoin=$(IFS="," ; echo "${missingMandatoryParameters[*]}") - echo "The following mandatory parameters are not set: $missingParametersJoin" - exit 1 -fi - -for parameter in "${mandatoryParameters[@]}"; do - log "Parameter: $parameter=${!parameter}" -done - -# If a wait timeout is set, block until the DB is available or the timeout is reached. -# This is useful when starting DB+BI via docker compose. -DB_WAIT_TIMEOUT=${DB_WAIT_TIMEOUT:-0} -if (( DB_WAIT_TIMEOUT > 0 )); then - if [ -z "$DB_USERNAME" ] || [ -z "$DB_PASSWORD" ]; then - echo "DB_USERNAME and DB_PASSWORD must be set if DB_WAIT_TIMEOUT is non-zero" - exit 3 - fi - set +e - echo "$DB_PASSWORD" | timeout "$DB_WAIT_TIMEOUT" /u01/wait_for_db.sh "$ORACLE_HOME" "$DB_USERNAME" "$DB_HOST" "$DB_PORT" "$DB_SERVICE" - exit_code="$?" - if [ ! "${exit_code}" -eq 0 ]; then - echo "Reached timeout waiting for DB to start - exiting" - exit 1 - fi - set -e -fi - -# Create Domain only if 1st execution -if [ ! -f "$domainCheckFile" ]; then - masterResponseFile=$ORACLE_HOME/bi/modules/oracle.bi.configassistant/response.txt - - tempDir=$(mktemp -dt "create_domain_XXXXXXXXXX") - trap 'rm -rf -- "$tempDir"; kill -TERM $PID' INT TERM - - responseFile=$tempDir/response.txt - cp "$masterResponseFile" "$responseFile" - - replacements=" -e \"s|@@DOMAIN_TYPE@@|DOMAIN_TYPE_EXPANDED|g\"" - replacements+=" -e \"s|@@CONFIGURE_ESSBASE@@|true|g\"" - replacements+=" -e \"s|@@CONFIGURE_BIEE@@|true|g\"" - replacements+=" -e \"s|@@CONFIGURE_BIP@@|true|g\"" - replacements+=" -e \"s|@@DOMAIN_NAME@@|$DOMAIN_NAME|g\"" - replacements+=" -e \"s|@@DOMAINS_DIR@@|$DOMAINS_DIR|g\"" - replacements+=" -e \"s|@@ADMIN_USER_NAME@@|$ADMIN_USERNAME|g\"" - replacements+=" -e \"s|@@ADMIN_PASSWORD@@|$ADMIN_PASSWORD|g\"" - replacements+=" -e \"s|@@SCHEMA_TYPE@@|SCHEMA_TYPE_NEW|g\"" - replacements+=" -e \"s|@@DB_TYPE@@|ORACLE|g\"" - replacements+=" -e \"s|@@DB_CONNECT_STRING@@|$DB_HOST:$DB_PORT:$DB_SERVICE|g\"" - replacements+=" -e \"s|@@DB_ADMIN_USERNAME@@|$DB_USERNAME|g\"" - replacements+=" -e \"s|@@DB_PASSWORD@@|$DB_PASSWORD|g\"" - replacements+=" -e \"s|@@PREFIX@@|$SCHEMA_PREFIX|g\"" - replacements+=" -e \"s|@@NEW_DB_SCHEMA_PASSWORD@@|$SCHEMA_PASSWORD|g\"" - replacements+=" -e \"s|@@NEW_DB_SCHEMA_PASSWORD@@|$SCHEMA_PASSWORD|g\"" - replacements+=" -e \"s|@@APPLICATION_TYPE@@|APPLICATION_TYPE_EMPTY|g\"" - replacements+=" -e \"s|@@AUTO_DROP_SCHEMAS@@|false|g\"" - replacements+=" -e \"s|@@DEFAULT_SI_KEY@@|ssi|g\"" - replacements+=" -e \"s|@@PORT_RANGE_START@@|9500|g\"" - replacements+=" -e \"s|@@PORT_RANGE_END@@|9999|g\"" - - eval sed -i "$replacements" "$responseFile" - - "$ORACLE_HOME"/bi/bin/config.sh -ignoreSysPrereqs -silent -responseFile "$responseFile" & - PID=$! - wait $PID - rm -f "$responseFile" - trap - INT TERM - - echo "Do not delete this file - it tells the container createAndStartDomain.sh script that the domain is ready to be started" > "$domainCheckFile" -else - "${DOMAIN_HOME}"/bitools/bin/start.sh -fi - -trap '${DOMAIN_HOME}/bitools/bin/stop.sh; kill -TERM $PID' INT TERM -tail -f "${DOMAIN_HOME}"/servers/AdminServer/logs/"${DOMAIN_NAME}".log & -PID=$! -wait $PID diff --git a/OracleAnalytics/dockerfiles/6.4/install.file b/OracleAnalytics/dockerfiles/6.4/install.file deleted file mode 100644 index dd7c525d95..0000000000 --- a/OracleAnalytics/dockerfiles/6.4/install.file +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright (c) 2022 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. -# -[ENGINE] - -#DO NOT CHANGE THIS. -Response File Version=1.0.0.0.0 - -[GENERIC] - -DECLINE_SECURITY_UPDATES=true -SECURITY_UPDATES_VIA_MYORACLESUPPORT=false diff --git a/OracleAnalytics/dockerfiles/6.4/oraInst.loc b/OracleAnalytics/dockerfiles/6.4/oraInst.loc deleted file mode 100644 index 01f1964a55..0000000000 --- a/OracleAnalytics/dockerfiles/6.4/oraInst.loc +++ /dev/null @@ -1,2 +0,0 @@ -inventory_loc=/u01/oracle/.inventory -inst_group=oracle diff --git a/OracleAnalytics/dockerfiles/6.4/wait_for_db.sh b/OracleAnalytics/dockerfiles/6.4/wait_for_db.sh deleted file mode 100755 index ba676a5eae..0000000000 --- a/OracleAnalytics/dockerfiles/6.4/wait_for_db.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2022 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. - -if [ $# -ne 5 ]; then - echo usage: wait_for_db.sh oracle_home username host port service - echo password is provided on stdin - exit 1 -fi - -ORACLE_HOME=$1 -DB_USERNAME=$2 -DB_HOST=$3 -DB_PORT=$4 -DB_SERVICE=$5 -DB_PASSWORD=$(cat) - -# shellcheck source=/dev/null -. "$ORACLE_HOME"/oracle_common/common/bin/commEnv.sh - -echo "Waiting for DB" -until java -cp "$WEBLOGIC_CLASSPATH" utils.dbping ORACLE_THIN "$DB_USERNAME as sysdba" "$DB_PASSWORD" "$DB_HOST":"$DB_PORT"/"$DB_SERVICE" > /dev/null -do - echo "Waiting for DB" - sleep 10 -done -echo "DB is available" - diff --git a/OracleAnalytics/patches/6.4-patch/Dockerfile b/OracleAnalytics/patches/6.4-patch/Dockerfile deleted file mode 100644 index 6fb2d1161e..0000000000 --- a/OracleAnalytics/patches/6.4-patch/Dockerfile +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright (c) 2022 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This Dockerfile extends the Oracle Analytics Server 6.4, and applies necessary -# patches required. - -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) p34080315_122140_Generic.zip -# (2) p33958532_122140_Generic.zip -# (3) p34044738_122140_Generic.zip -# (4) p32784652_122140_Generic.zip -# (5) p30613424_122140_Generic.zip -# (6) p31403376_122140_Generic.zip -# (7) p33618954_122140_Generic.zip -# (8) p33546536_12214211129_Generic.zip -# (9) p32575741_122140_Linux-x86-64.zip -# (10) p33950717_122140_Generic.zip -# (11) p34065178_122140_Generic.zip - -# Download the patches from https://support.oracle.com -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build --force-rm=true --no-cache=true -t oracle/fmw-infrastructure:12.2.1.4-patched-for-oas64 . -# - -# Pull base image -# --------------- -FROM oracle/analyticsserver:6.4 - -# Labels -# ------ -LABEL "maintainer"="Padam Bengani " - -#Common ENV -#----------- -ENV OPATCH_NO_FUSER=true - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -ENV PATCH_PKG_34080315="p34080315_122140_Generic.zip" \ - PATCH_PKG_33958532="p33958532_122140_Generic.zip" \ - PATCH_PKG_34044738="p34044738_122140_Generic.zip" \ - PATCH_PKG_32784652="p32784652_122140_Generic.zip" \ - PATCH_PKG_30613424="p30613424_122140_Generic.zip" \ - PATCH_PKG_31403376="p31403376_122140_Generic.zip" \ - PATCH_PKG_33618954="p33618954_122140_Generic.zip" \ - PATCH_PKG_33546536="p33546536_12214211129_Generic.zip" \ - PATCH_PKG_32575741="p32575741_122140_Linux-x86-64.zip" \ - PATCH_PKG_33950717="p33950717_122140_Generic.zip" \ - PATCH_PKG_34065178="p34065178_122140_Generic.zip" - - -# Copy supplemental package and scripts -# -------------------------------- -COPY --chown=oracle:oracle $PATCH_PKG_34080315 $PATCH_PKG_33958532 $PATCH_PKG_34044738 $PATCH_PKG_32784652 $PATCH_PKG_30613424 $PATCH_PKG_31403376 $PATCH_PKG_33618954 $PATCH_PKG_33546536 $PATCH_PKG_32575741 $PATCH_PKG_33950717 $PATCH_PKG_34065178 /u01/ - -# Installation of Supplemental Quick Installer -# -------------------------------------------- -USER oracle - -RUN unzip "/u01/$PATCH_PKG_34080315" -d /u01 && \ - chmod +x /u01/WLS_SPB_12.2.1.4.220418/tools/spbat/generic/SPBAT/spbat.sh && \ - /u01/WLS_SPB_12.2.1.4.220418/tools/spbat/generic/SPBAT/spbat.sh -phase apply -oracle_home "$ORACLE_HOME" && \ - rm "/u01/$PATCH_PKG_34080315" && \ - unzip "/u01/$PATCH_PKG_33958532" -d /u01 && \ - "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/33958532 && \ - rm "/u01/$PATCH_PKG_33958532" && \ - unzip "/u01/$PATCH_PKG_34044738" -d /u01 && \ - "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/34044738 && \ - rm "/u01/$PATCH_PKG_34044738" && \ - unzip "/u01/$PATCH_PKG_32784652" -d /u01 && \ - "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/32784652 && \ - rm "/u01/$PATCH_PKG_32784652" && \ - unzip "/u01/$PATCH_PKG_30613424" -d /u01 && \ - "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/30613424 && \ - rm "/u01/$PATCH_PKG_30613424" && \ - unzip "/u01/$PATCH_PKG_31403376" -d /u01 && \ - "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/31403376 && \ - rm "/u01/$PATCH_PKG_31403376" && \ - unzip "/u01/$PATCH_PKG_33618954" -d /u01 && \ - "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/33618954 && \ - rm "/u01/$PATCH_PKG_33618954" && \ - unzip "/u01/$PATCH_PKG_33546536" -d /u01 && \ - "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/33546536 && \ - rm "/u01/$PATCH_PKG_33546536" && \ - unzip "/u01/$PATCH_PKG_32575741" -d /u01 && \ - "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/32575741 && \ - rm "/u01/$PATCH_PKG_32575741" && \ - unzip "/u01/$PATCH_PKG_33950717" -d /u01 && \ - "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/33950717 && \ - rm "/u01/$PATCH_PKG_33950717" && \ - unzip "/u01/$PATCH_PKG_34065178" -d /u01 && \ - "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/34065178 && \ - rm "/u01/$PATCH_PKG_34065178" - -WORKDIR ${ORACLE_HOME} - -CMD ["/u01/createAndStartDomain.sh"] diff --git a/OracleAnalytics/patches/6.4-patch/README.md b/OracleAnalytics/patches/6.4-patch/README.md deleted file mode 100644 index b8c822a195..0000000000 --- a/OracleAnalytics/patches/6.4-patch/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# Build a Oracle Analytics Server 6.4 Patched Image - -This Dockerfile extends the Oracle Analytics Server image (6.4), -and applies necessary patches. - -## How to build and run - -First make sure you have built `oracle/analyticsserver:6.4`. - -Download the following patches from -[My Oracle Support](https://support.oracle.com) -and place them in the same directory as this README. - -1. p34080315_122140_Generic.zip -2. p33958532_122140_Generic.zip -3. p34044738_122140_Generic.zip -4. p32784652_122140_Generic.zip -5. p30613424_122140_Generic.zip -6. p31403376_122140_Generic.zip -7. p33618954_122140_Generic.zip -8. p33546536_12214211129_Generic.zip -9. p32575741_122140_Linux-x86-64.zip -10. p33950717_122140_Generic.zip -11. p34065178_122140_Generic.zip - -To build, run: - -```bash -docker build --force-rm=true --no-cache=true -t oracle/analyticsserver:6.4-patch . -``` - -## Copyright - -Copyright (c) 2022 Oracle and/or its affiliates. From 106db1f4350918018f96bbd14b8eb0f292d69caa Mon Sep 17 00:00:00 2001 From: Padam Prakash Bengani Date: Wed, 30 Apr 2025 16:30:16 +0100 Subject: [PATCH 16/16] Use exact path of spbat.sh rather than a glob --- OracleAnalytics/patches/2025-patch/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OracleAnalytics/patches/2025-patch/Dockerfile b/OracleAnalytics/patches/2025-patch/Dockerfile index 9c988c6a8c..8f6a7f2e8c 100644 --- a/OracleAnalytics/patches/2025-patch/Dockerfile +++ b/OracleAnalytics/patches/2025-patch/Dockerfile @@ -73,8 +73,8 @@ COPY --chown=oracle:oracle \ USER oracle RUN unzip "/u01/$PATCH_PKG_37804819" -d /u01 && \ - chmod +x /u01/WLS_SPB_12.2.1.4*/tools/spbat/generic/SPBAT/spbat.sh && \ - /u01/WLS_SPB_12.2.1.4*/tools/spbat/generic/SPBAT/spbat.sh -phase apply -oracle_home "$ORACLE_HOME" && \ + chmod +x /u01/WLS_SPB_12.2.1.4.250408/tools/spbat/generic/SPBAT/spbat.sh && \ + /u01/WLS_SPB_12.2.1.4.250408/tools/spbat/generic/SPBAT/spbat.sh -phase apply -oracle_home "$ORACLE_HOME" && \ rm "/u01/$PATCH_PKG_37804819" && \ unzip "/u01/$PATCH_PKG_34809489" -d /u01 && \ "$ORACLE_HOME/OPatch/opatch" apply -silent /u01/34809489 && \