From 40a875a54d29acf7c82853502d06be50f155adf2 Mon Sep 17 00:00:00 2001 From: Felipe Santos Date: Fri, 18 Oct 2024 18:51:03 -0300 Subject: [PATCH 1/3] Start Oracle Database health check only after startup is finished --- .../SingleInstance/dockerfiles/21.3.0/Dockerfile | 1 + .../SingleInstance/dockerfiles/21.3.0/Dockerfile.xe | 1 + .../SingleInstance/dockerfiles/21.3.0/checkDBStatus.sh | 5 +++++ .../SingleInstance/dockerfiles/21.3.0/runOracle.sh | 8 +++++--- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile index 0ba206efc3..6f89cb63c1 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile +++ b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile @@ -55,6 +55,7 @@ ENV ORACLE_BASE=/opt/oracle \ SETUP_LINUX_FILE="setupLinuxEnv.sh" \ CHECK_SPACE_FILE="checkSpace.sh" \ CHECK_DB_FILE="checkDBStatus.sh" \ + DB_STARTED_MARKER_FILE="/dev/shm/.db_started" \ USER_SCRIPTS_FILE="runUserScripts.sh" \ INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ RELINK_BINARY_FILE="relinkOracleBinary.sh" \ diff --git a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile.xe b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile.xe index 34c16357dc..fa5926556f 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile.xe +++ b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile.xe @@ -47,6 +47,7 @@ ENV ORACLE_BASE=/opt/oracle \ CONF_FILE="oracle-xe-21c.conf" \ CHECK_SPACE_FILE="checkSpace.sh" \ CHECK_DB_FILE="checkDBStatus.sh" \ + DB_STARTED_MARKER_FILE="/dev/shm/.db_started" \ SETUP_LINUX_FILE="setupLinuxEnv.sh" \ CONFIG_TCPS_FILE="configTcps.sh" \ INSTALL_DIR="$HOME/install" \ diff --git a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/checkDBStatus.sh index 26e5e2a7e9..38d1b750f5 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/checkDBStatus.sh @@ -73,6 +73,11 @@ EOF ################ MAIN ####################### ############################################# +if [ "$IGNORE_DB_STARTED_MARKER" != true ] && [ ! -f "$DB_STARTED_MARKER_FILE" ]; then + echo "Database was not started yet." >&2 + exit 1 +fi + # Setting up ORACLE_PWD if podman secret is passed on if [ -e '/run/secrets/oracle_pwd' ]; then export ORACLE_PWD="$(cat '/run/secrets/oracle_pwd')" diff --git a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/runOracle.sh b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/runOracle.sh index c8f1d734a7..6bc626a03d 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/runOracle.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/runOracle.sh @@ -280,7 +280,7 @@ else "$ORACLE_BASE"/"$CREATE_DB_FILE" $ORACLE_SID "$ORACLE_PDB" "$ORACLE_PWD" || exit 1; # Check whether database is successfully created - if "$ORACLE_BASE"/"$CHECK_DB_FILE"; then + if IGNORE_DB_STARTED_MARKER=true "$ORACLE_BASE"/"$CHECK_DB_FILE"; then # Create a checkpoint file if database is successfully created # Populate the checkpoint file with the current date to avoid timing issue when using NFS persistence in multi-replica mode echo "$(date -Iseconds)" > "$ORACLE_BASE"/oradata/.${ORACLE_SID}"${CHECKPOINT_FILE_EXTN}" @@ -303,7 +303,7 @@ else fi; # Check whether database is up and running -"$ORACLE_BASE"/"$CHECK_DB_FILE" +IGNORE_DB_STARTED_MARKER=true "$ORACLE_BASE"/"$CHECK_DB_FILE" status=$? # Check whether database is up and running @@ -317,7 +317,9 @@ if [ $status -eq 0 ]; then # Execute custom provided startup scripts "$ORACLE_BASE"/"$USER_SCRIPTS_FILE" "$ORACLE_BASE"/scripts/startup - + + # Create marker file for the health check + touch "$DB_STARTED_MARKER_FILE" else echo "#####################################" echo "########### E R R O R ###############" From e574b574f8b2093438fcbf7de1288d6d4aa4456c Mon Sep 17 00:00:00 2001 From: Felipe Santos Date: Mon, 21 Oct 2024 12:30:00 -0300 Subject: [PATCH 2/3] Replicate to all other database versions --- .../SingleInstance/dockerfiles/11.2.0.2/Dockerfile.xe | 3 ++- .../SingleInstance/dockerfiles/11.2.0.2/checkDBStatus.sh | 5 +++++ .../SingleInstance/dockerfiles/11.2.0.2/runOracle.sh | 4 +++- .../SingleInstance/dockerfiles/12.1.0.2/Dockerfile.ee | 1 + .../SingleInstance/dockerfiles/12.1.0.2/Dockerfile.se2 | 1 + .../SingleInstance/dockerfiles/12.1.0.2/checkDBStatus.sh | 5 +++++ .../SingleInstance/dockerfiles/12.1.0.2/runOracle.sh | 4 +++- .../SingleInstance/dockerfiles/12.2.0.1/Dockerfile | 1 + .../SingleInstance/dockerfiles/12.2.0.1/checkDBStatus.sh | 5 +++++ .../SingleInstance/dockerfiles/12.2.0.1/runOracle.sh | 4 +++- OracleDatabase/SingleInstance/dockerfiles/18.3.0/Dockerfile | 1 + .../SingleInstance/dockerfiles/18.3.0/checkDBStatus.sh | 5 +++++ .../SingleInstance/dockerfiles/18.3.0/runOracle.sh | 4 +++- .../SingleInstance/dockerfiles/18.4.0/checkDBStatus.sh | 5 +++++ .../SingleInstance/dockerfiles/18.4.0/runOracle.sh | 4 +++- OracleDatabase/SingleInstance/dockerfiles/19.3.0/Dockerfile | 1 + .../SingleInstance/dockerfiles/19.3.0/checkDBStatus.sh | 5 +++++ .../SingleInstance/dockerfiles/19.3.0/runOracle.sh | 6 ++++-- .../SingleInstance/dockerfiles/23.5.0/Containerfile.free | 1 + .../SingleInstance/dockerfiles/23.5.0/checkDBStatus.sh | 5 +++++ .../SingleInstance/dockerfiles/23.5.0/runOracle.sh | 6 ++++-- 21 files changed, 66 insertions(+), 10 deletions(-) diff --git a/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/Dockerfile.xe b/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/Dockerfile.xe index 4e157640ea..845293980e 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/Dockerfile.xe +++ b/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/Dockerfile.xe @@ -50,7 +50,8 @@ ENV ORACLE_BASE=/u01/app/oracle \ CONFIG_RSP="xe.rsp" \ RUN_FILE="runOracle.sh" \ PWD_FILE="setPassword.sh" \ - CHECK_DB_FILE="checkDBStatus.sh" + CHECK_DB_FILE="checkDBStatus.sh" \ + DB_STARTED_MARKER_FILE="/dev/shm/.db_started" # Use second ENV so that variable get substituted ENV PATH=$ORACLE_HOME/bin:$PATH diff --git a/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/checkDBStatus.sh index df473ab922..00a572a287 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/checkDBStatus.sh @@ -12,6 +12,11 @@ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. # +if [ "$IGNORE_DB_STARTED_MARKER" != true ] && [ ! -f "$DB_STARTED_MARKER_FILE" ]; then + echo "Database was not started yet." >&2 + exit 1 +fi + POSITIVE_RETURN="OPEN" ORACLE_SID="`grep $ORACLE_HOME /etc/oratab | cut -d: -f1`" diff --git a/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/runOracle.sh b/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/runOracle.sh index babd0235c0..fb7c6d00ae 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/runOracle.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/runOracle.sh @@ -190,7 +190,7 @@ if [ "$?" == "0" ]; then fi; # Check whether database is up and running -$ORACLE_BASE/$CHECK_DB_FILE +IGNORE_DB_STARTED_MARKER=true $ORACLE_BASE/$CHECK_DB_FILE if [ $? -eq 0 ]; then echo "#########################" echo "DATABASE IS READY TO USE!" @@ -199,6 +199,8 @@ if [ $? -eq 0 ]; then # Execute custom provided startup scripts runUserScripts $ORACLE_BASE/scripts/startup + # Create marker file for the health check + touch "$DB_STARTED_MARKER_FILE" else echo "#####################################" echo "########### E R R O R ###############" diff --git a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.ee b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.ee index 82e80ec245..5527c8adac 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.ee +++ b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.ee @@ -52,6 +52,7 @@ ENV ORACLE_BASE=/opt/oracle \ SETUP_LINUX_FILE="setupLinuxEnv.sh" \ CHECK_SPACE_FILE="checkSpace.sh" \ CHECK_DB_FILE="checkDBStatus.sh" \ + DB_STARTED_MARKER_FILE="/dev/shm/.db_started" \ USER_SCRIPTS_FILE="runUserScripts.sh" \ INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" diff --git a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.se2 b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.se2 index 28e8c126f7..dba2d0d7da 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.se2 +++ b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.se2 @@ -52,6 +52,7 @@ ENV ORACLE_BASE=/opt/oracle \ SETUP_LINUX_FILE="setupLinuxEnv.sh" \ CHECK_SPACE_FILE="checkSpace.sh" \ CHECK_DB_FILE="checkDBStatus.sh" \ + DB_STARTED_MARKER_FILE="/dev/shm/.db_started" \ USER_SCRIPTS_FILE="runUserScripts.sh" \ INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" diff --git a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/checkDBStatus.sh index a96fe77e91..26573ced04 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/checkDBStatus.sh @@ -12,6 +12,11 @@ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. # +if [ "$IGNORE_DB_STARTED_MARKER" != true ] && [ ! -f "$DB_STARTED_MARKER_FILE" ]; then + echo "Database was not started yet." >&2 + exit 1 +fi + ORACLE_SID="`grep $ORACLE_HOME /etc/oratab | cut -d: -f1`" OPEN_MODE="READ WRITE" ORAENV_ASK=NO diff --git a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/runOracle.sh b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/runOracle.sh index cb94a9f00f..dd5c4dee85 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/runOracle.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/runOracle.sh @@ -178,7 +178,7 @@ else fi; # Check whether database is up and running -$ORACLE_BASE/$CHECK_DB_FILE +IGNORE_DB_STARTED_MARKER=true $ORACLE_BASE/$CHECK_DB_FILE if [ $? -eq 0 ]; then echo "#########################" echo "DATABASE IS READY TO USE!" @@ -187,6 +187,8 @@ if [ $? -eq 0 ]; then # Execute custom provided startup scripts $ORACLE_BASE/$USER_SCRIPTS_FILE $ORACLE_BASE/scripts/startup + # Create marker file for the health check + touch "$DB_STARTED_MARKER_FILE" else echo "#####################################" echo "########### E R R O R ###############" diff --git a/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/Dockerfile b/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/Dockerfile index 71df07b58f..fd30203ea7 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/Dockerfile +++ b/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/Dockerfile @@ -46,6 +46,7 @@ ENV ORACLE_BASE=/opt/oracle \ RUN_FILE="runOracle.sh" \ START_FILE="startDB.sh" \ CREATE_DB_FILE="createDB.sh" \ + DB_STARTED_MARKER_FILE="/dev/shm/.db_started" \ SETUP_LINUX_FILE="setupLinuxEnv.sh" \ CHECK_SPACE_FILE="checkSpace.sh" \ CHECK_DB_FILE="checkDBStatus.sh" \ diff --git a/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/checkDBStatus.sh index a96fe77e91..26573ced04 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/checkDBStatus.sh @@ -12,6 +12,11 @@ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. # +if [ "$IGNORE_DB_STARTED_MARKER" != true ] && [ ! -f "$DB_STARTED_MARKER_FILE" ]; then + echo "Database was not started yet." >&2 + exit 1 +fi + ORACLE_SID="`grep $ORACLE_HOME /etc/oratab | cut -d: -f1`" OPEN_MODE="READ WRITE" ORAENV_ASK=NO diff --git a/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/runOracle.sh b/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/runOracle.sh index cb94a9f00f..dd5c4dee85 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/runOracle.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/runOracle.sh @@ -178,7 +178,7 @@ else fi; # Check whether database is up and running -$ORACLE_BASE/$CHECK_DB_FILE +IGNORE_DB_STARTED_MARKER=true $ORACLE_BASE/$CHECK_DB_FILE if [ $? -eq 0 ]; then echo "#########################" echo "DATABASE IS READY TO USE!" @@ -187,6 +187,8 @@ if [ $? -eq 0 ]; then # Execute custom provided startup scripts $ORACLE_BASE/$USER_SCRIPTS_FILE $ORACLE_BASE/scripts/startup + # Create marker file for the health check + touch "$DB_STARTED_MARKER_FILE" else echo "#####################################" echo "########### E R R O R ###############" diff --git a/OracleDatabase/SingleInstance/dockerfiles/18.3.0/Dockerfile b/OracleDatabase/SingleInstance/dockerfiles/18.3.0/Dockerfile index 608cb49f12..57427eec63 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/18.3.0/Dockerfile +++ b/OracleDatabase/SingleInstance/dockerfiles/18.3.0/Dockerfile @@ -49,6 +49,7 @@ ENV ORACLE_BASE=/opt/oracle \ SETUP_LINUX_FILE="setupLinuxEnv.sh" \ CHECK_SPACE_FILE="checkSpace.sh" \ CHECK_DB_FILE="checkDBStatus.sh" \ + DB_STARTED_MARKER_FILE="/dev/shm/.db_started" \ USER_SCRIPTS_FILE="runUserScripts.sh" \ INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" diff --git a/OracleDatabase/SingleInstance/dockerfiles/18.3.0/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/18.3.0/checkDBStatus.sh index a96fe77e91..26573ced04 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/18.3.0/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/18.3.0/checkDBStatus.sh @@ -12,6 +12,11 @@ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. # +if [ "$IGNORE_DB_STARTED_MARKER" != true ] && [ ! -f "$DB_STARTED_MARKER_FILE" ]; then + echo "Database was not started yet." >&2 + exit 1 +fi + ORACLE_SID="`grep $ORACLE_HOME /etc/oratab | cut -d: -f1`" OPEN_MODE="READ WRITE" ORAENV_ASK=NO diff --git a/OracleDatabase/SingleInstance/dockerfiles/18.3.0/runOracle.sh b/OracleDatabase/SingleInstance/dockerfiles/18.3.0/runOracle.sh index 00b81a5db5..56b21eb2ac 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/18.3.0/runOracle.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/18.3.0/runOracle.sh @@ -178,7 +178,7 @@ else fi; # Check whether database is up and running -$ORACLE_BASE/$CHECK_DB_FILE +IGNORE_DB_STARTED_MARKER=true $ORACLE_BASE/$CHECK_DB_FILE if [ $? -eq 0 ]; then echo "#########################" echo "DATABASE IS READY TO USE!" @@ -187,6 +187,8 @@ if [ $? -eq 0 ]; then # Execute custom provided startup scripts $ORACLE_BASE/$USER_SCRIPTS_FILE $ORACLE_BASE/scripts/startup + # Create marker file for the health check + touch "$DB_STARTED_MARKER_FILE" else echo "#####################################" echo "########### E R R O R ###############" diff --git a/OracleDatabase/SingleInstance/dockerfiles/18.4.0/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/18.4.0/checkDBStatus.sh index ba803718e7..ee83f082b1 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/18.4.0/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/18.4.0/checkDBStatus.sh @@ -12,6 +12,11 @@ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. # +if [ "$IGNORE_DB_STARTED_MARKER" != true ] && [ ! -f "$DB_STARTED_MARKER_FILE" ]; then + echo "Database was not started yet." >&2 + exit 1 +fi + ORACLE_SID="`grep $ORACLE_HOME /etc/oratab | cut -d: -f1`" OPEN_MODE="READ WRITE" ORAENV_ASK=NO diff --git a/OracleDatabase/SingleInstance/dockerfiles/18.4.0/runOracle.sh b/OracleDatabase/SingleInstance/dockerfiles/18.4.0/runOracle.sh index fbff9cf649..7619855138 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/18.4.0/runOracle.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/18.4.0/runOracle.sh @@ -201,7 +201,7 @@ if [ "$?" == "0" ]; then fi; # Check whether database is up and running -$ORACLE_BASE/$CHECK_DB_FILE +IGNORE_DB_STARTED_MARKER=true $ORACLE_BASE/$CHECK_DB_FILE if [ $? -eq 0 ]; then echo "#########################" echo "DATABASE IS READY TO USE!" @@ -210,6 +210,8 @@ if [ $? -eq 0 ]; then # Execute custom provided startup scripts runUserScripts $ORACLE_BASE/scripts/startup + # Create marker file for the health check + touch "$DB_STARTED_MARKER_FILE" else echo "#####################################" echo "########### E R R O R ###############" diff --git a/OracleDatabase/SingleInstance/dockerfiles/19.3.0/Dockerfile b/OracleDatabase/SingleInstance/dockerfiles/19.3.0/Dockerfile index 04c2704694..e1695ed48b 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/19.3.0/Dockerfile +++ b/OracleDatabase/SingleInstance/dockerfiles/19.3.0/Dockerfile @@ -56,6 +56,7 @@ ENV ORACLE_BASE=/opt/oracle \ SETUP_LINUX_FILE="setupLinuxEnv.sh" \ CHECK_SPACE_FILE="checkSpace.sh" \ CHECK_DB_FILE="checkDBStatus.sh" \ + DB_STARTED_MARKER_FILE="/dev/shm/.db_started" \ USER_SCRIPTS_FILE="runUserScripts.sh" \ INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ RELINK_BINARY_FILE="relinkOracleBinary.sh" \ diff --git a/OracleDatabase/SingleInstance/dockerfiles/19.3.0/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/19.3.0/checkDBStatus.sh index 1743029a4d..a9436f3a84 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/19.3.0/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/19.3.0/checkDBStatus.sh @@ -73,6 +73,11 @@ EOF ################ MAIN ####################### ############################################# +if [ "$IGNORE_DB_STARTED_MARKER" != true ] && [ ! -f "$DB_STARTED_MARKER_FILE" ]; then + echo "Database was not started yet." >&2 + exit 1 +fi + # Setting up ORACLE_PWD if podman secret is passed on if [ -e '/run/secrets/oracle_pwd' ]; then export ORACLE_PWD="$(cat '/run/secrets/oracle_pwd')" diff --git a/OracleDatabase/SingleInstance/dockerfiles/19.3.0/runOracle.sh b/OracleDatabase/SingleInstance/dockerfiles/19.3.0/runOracle.sh index 2a5bcc2908..04b6e6a7b0 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/19.3.0/runOracle.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/19.3.0/runOracle.sh @@ -272,7 +272,7 @@ else "$ORACLE_BASE"/"$CREATE_DB_FILE" "$ORACLE_SID" "$ORACLE_PDB" "$ORACLE_PWD" || exit 1; # Check whether database is successfully created - if "$ORACLE_BASE"/"$CHECK_DB_FILE"; then + if IGNORE_DB_STARTED_MARKER=true "$ORACLE_BASE"/"$CHECK_DB_FILE"; then # Create a checkpoint file if database is successfully created # Populate the checkpoint file with the current date to avoid timing issue when using NFS persistence in multi-replica mode date -Iseconds > "$ORACLE_BASE"/oradata/."${ORACLE_SID}""${CHECKPOINT_FILE_EXTN}" @@ -295,7 +295,7 @@ else fi; # Check whether database is up and running -"$ORACLE_BASE"/"$CHECK_DB_FILE" +IGNORE_DB_STARTED_MARKER=true "$ORACLE_BASE"/"$CHECK_DB_FILE" status=$? if [ $status -eq 0 ]; then @@ -308,6 +308,8 @@ if [ $status -eq 0 ]; then # Execute custom provided startup scripts "$ORACLE_BASE"/"$USER_SCRIPTS_FILE" "$ORACLE_BASE"/scripts/startup + # Create marker file for the health check + touch "$DB_STARTED_MARKER_FILE" else echo "#####################################" echo "########### E R R O R ###############" diff --git a/OracleDatabase/SingleInstance/dockerfiles/23.5.0/Containerfile.free b/OracleDatabase/SingleInstance/dockerfiles/23.5.0/Containerfile.free index 7af0793213..3971f5084c 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/23.5.0/Containerfile.free +++ b/OracleDatabase/SingleInstance/dockerfiles/23.5.0/Containerfile.free @@ -46,6 +46,7 @@ ENV ORACLE_BASE=/opt/oracle \ CONF_FILE="oracle-free-23ai.conf" \ CHECK_SPACE_FILE="checkSpace.sh" \ CHECK_DB_FILE="checkDBStatus.sh" \ + DB_STARTED_MARKER_FILE="/dev/shm/.db_started" \ SETUP_LINUX_FILE="setupLinuxEnv.sh" \ DECRYPT_PWD_FILE="decryptPassword.sh" \ CONFIG_TCPS_FILE="configTcps.sh" \ diff --git a/OracleDatabase/SingleInstance/dockerfiles/23.5.0/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/23.5.0/checkDBStatus.sh index e66feeb655..bfa8d22662 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/23.5.0/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/23.5.0/checkDBStatus.sh @@ -77,6 +77,11 @@ EOF ################ MAIN ####################### ############################################# +if [ "$IGNORE_DB_STARTED_MARKER" != true ] && [ ! -f "$DB_STARTED_MARKER_FILE" ]; then + echo "Database was not started yet." >&2 + exit 1 +fi + ORACLE_PWD=$($ORACLE_BASE/$DECRYPT_PWD_FILE) export ORACLE_PWD diff --git a/OracleDatabase/SingleInstance/dockerfiles/23.5.0/runOracle.sh b/OracleDatabase/SingleInstance/dockerfiles/23.5.0/runOracle.sh index 275f68735a..dc72b196c9 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/23.5.0/runOracle.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/23.5.0/runOracle.sh @@ -273,7 +273,7 @@ else "$ORACLE_BASE"/"$CREATE_DB_FILE" $ORACLE_SID "$ORACLE_PDB" "$ORACLE_PWD" || exit 1; for i in 1 2 4 8; do - "$ORACLE_BASE"/"$CHECK_DB_FILE"; + IGNORE_DB_STARTED_MARKER=true "$ORACLE_BASE"/"$CHECK_DB_FILE"; ret=$? # Check whether database is successfully created if [ $ret -eq 0 ]; then @@ -308,7 +308,7 @@ fi; for i in 1 2 4 8; do # Check whether database is up and running - "$ORACLE_BASE"/"$CHECK_DB_FILE" + IGNORE_DB_STARTED_MARKER=true "$ORACLE_BASE"/"$CHECK_DB_FILE" status=$? if [ $status -eq 5 ]; then # PDB is in mounted state @@ -331,6 +331,8 @@ if [ $status -eq 0 ]; then # Execute custom provided startup scripts "$ORACLE_BASE"/"$USER_SCRIPTS_FILE" "$ORACLE_BASE"/scripts/startup + # Create marker file for the health check + touch "$DB_STARTED_MARKER_FILE" else echo "#####################################" echo "########### E R R O R ###############" From fb854eb473481fa1d77d28df95a5acc4008c12eb Mon Sep 17 00:00:00 2001 From: Felipe Santos Date: Mon, 3 Mar 2025 13:20:00 -0300 Subject: [PATCH 3/3] Fix linter issues --- .../SingleInstance/dockerfiles/11.2.0.2/Dockerfile.xe | 2 +- .../SingleInstance/dockerfiles/11.2.0.2/checkDBStatus.sh | 1 + .../SingleInstance/dockerfiles/11.2.0.2/runOracle.sh | 8 ++++++-- .../SingleInstance/dockerfiles/12.1.0.2/Dockerfile.ee | 2 +- .../SingleInstance/dockerfiles/12.1.0.2/Dockerfile.se2 | 2 +- .../SingleInstance/dockerfiles/12.1.0.2/checkDBStatus.sh | 3 +++ .../SingleInstance/dockerfiles/12.2.0.1/Dockerfile | 2 +- .../SingleInstance/dockerfiles/12.2.0.1/checkDBStatus.sh | 3 +++ .../SingleInstance/dockerfiles/18.3.0/Dockerfile | 2 +- .../SingleInstance/dockerfiles/18.3.0/checkDBStatus.sh | 3 +++ .../SingleInstance/dockerfiles/18.4.0/Dockerfile.xe | 2 +- .../SingleInstance/dockerfiles/18.4.0/checkDBStatus.sh | 3 +++ .../SingleInstance/dockerfiles/18.4.0/runOracle.sh | 6 +++++- .../SingleInstance/dockerfiles/19.3.0/checkDBStatus.sh | 6 +++++- .../SingleInstance/dockerfiles/19.3.0/runOracle.sh | 4 +++- .../SingleInstance/dockerfiles/21.3.0/Dockerfile | 2 +- .../SingleInstance/dockerfiles/21.3.0/Dockerfile.xe | 2 +- .../SingleInstance/dockerfiles/21.3.0/checkDBStatus.sh | 5 ++++- .../SingleInstance/dockerfiles/21.3.0/runOracle.sh | 6 ++++-- .../SingleInstance/dockerfiles/23.6.0/Containerfile.free | 2 +- .../SingleInstance/dockerfiles/23.6.0/checkDBStatus.sh | 2 +- .../SingleInstance/dockerfiles/23.6.0/runOracle.sh | 2 +- .../SingleInstance/dockerfiles/23.6.0/runUserScripts.sh | 2 +- 23 files changed, 52 insertions(+), 20 deletions(-) mode change 100644 => 100755 OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/runOracle.sh mode change 100644 => 100755 OracleDatabase/SingleInstance/dockerfiles/18.4.0/runOracle.sh mode change 100644 => 100755 OracleDatabase/SingleInstance/dockerfiles/21.3.0/checkDBStatus.sh mode change 100644 => 100755 OracleDatabase/SingleInstance/dockerfiles/21.3.0/runOracle.sh diff --git a/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/Dockerfile.xe b/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/Dockerfile.xe index 845293980e..99d1ebc1c7 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/Dockerfile.xe +++ b/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/Dockerfile.xe @@ -90,4 +90,4 @@ RUN yum -y install unzip libaio bc initscripts net-tools openssl compat-libstdc+ HEALTHCHECK --interval=1m --start-period=5m \ CMD "$ORACLE_BASE/$CHECK_DB_FILE" >/dev/null || exit 1 -CMD exec $ORACLE_BASE/$RUN_FILE +CMD [ "/bin/bash", "-c", "exec $ORACLE_BASE/$RUN_FILE" ] diff --git a/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/checkDBStatus.sh index 00a572a287..6316390ca9 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/checkDBStatus.sh @@ -18,6 +18,7 @@ if [ "$IGNORE_DB_STARTED_MARKER" != true ] && [ ! -f "$DB_STARTED_MARKER_FILE" ] fi POSITIVE_RETURN="OPEN" +# shellcheck disable=SC2034 ORACLE_SID="`grep $ORACLE_HOME /etc/oratab | cut -d: -f1`" # Check Oracle DB status and store it in status diff --git a/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/runOracle.sh b/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/runOracle.sh old mode 100644 new mode 100755 index fb7c6d00ae..7b9d4a7fc6 --- a/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/runOracle.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/runOracle.sh @@ -19,7 +19,11 @@ function runUserScripts { for f in $SCRIPTS_ROOT/*; do case "$f" in - *.sh) echo "$0: running $f"; . "$f" ;; + *.sh) + echo "$0: running $f" + # shellcheck disable=SC1090 + . "$f" + ;; *.sql) echo "$0: running $f"; echo "exit" | su -p oracle -c "$ORACLE_HOME/bin/sqlplus / as sysdba @$f"; echo ;; *) echo "$0: ignoring $f" ;; esac @@ -175,7 +179,7 @@ fi; /etc/init.d/oracle-xe start | grep -qc "Oracle Database 11g Express Edition is not configured" if [ "$?" == "0" ]; then # Check whether container has enough memory - if [ `df -Pk /dev/shm | tail -n 1 | awk '{print $2}'` -lt 1048576 ]; then + if [ "`df -Pk /dev/shm | tail -n 1 | awk '{print $2}'`" -lt 1048576 ]; then echo "Error: The container doesn't have enough memory allocated." echo "A database XE container needs at least 1 GB of shared memory (/dev/shm)." echo "You currently only have $((`df -Pk /dev/shm | tail -n 1 | awk '{print $2}'`/1024)) MB allocated to the container." diff --git a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.ee b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.ee index 5527c8adac..96e3d0439e 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.ee +++ b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.ee @@ -120,4 +120,4 @@ HEALTHCHECK --interval=1m --start-period=5m \ CMD "$ORACLE_BASE/$CHECK_DB_FILE" >/dev/null || exit 1 # Define default command to start Oracle Database. -CMD exec $ORACLE_BASE/$RUN_FILE +CMD [ "/bin/bash", "-c", "exec $ORACLE_BASE/$RUN_FILE" ] diff --git a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.se2 b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.se2 index dba2d0d7da..2b601ed286 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.se2 +++ b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/Dockerfile.se2 @@ -120,4 +120,4 @@ HEALTHCHECK --interval=1m --start-period=5m \ CMD "$ORACLE_BASE/$CHECK_DB_FILE" >/dev/null || exit 1 # Define default command to start Oracle Database. -CMD exec $ORACLE_BASE/$RUN_FILE +CMD [ "/bin/bash", "-c", "exec $ORACLE_BASE/$RUN_FILE" ] diff --git a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/checkDBStatus.sh index 26573ced04..0b61e3ac8e 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/12.1.0.2/checkDBStatus.sh @@ -17,9 +17,12 @@ if [ "$IGNORE_DB_STARTED_MARKER" != true ] && [ ! -f "$DB_STARTED_MARKER_FILE" ] exit 1 fi +# shellcheck disable=SC2034 ORACLE_SID="`grep $ORACLE_HOME /etc/oratab | cut -d: -f1`" OPEN_MODE="READ WRITE" +# shellcheck disable=SC2034 ORAENV_ASK=NO +# shellcheck disable=SC1090 source oraenv # Check Oracle at least one PDB has open_mode "READ WRITE" and store it in status diff --git a/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/Dockerfile b/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/Dockerfile index fd30203ea7..f67540b72d 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/Dockerfile +++ b/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/Dockerfile @@ -117,4 +117,4 @@ HEALTHCHECK --interval=1m --start-period=5m \ CMD "$ORACLE_BASE/$CHECK_DB_FILE" >/dev/null || exit 1 # Define default command to start Oracle Database. -CMD exec $ORACLE_BASE/$RUN_FILE +CMD [ "/bin/bash", "-c", "exec $ORACLE_BASE/$RUN_FILE" ] diff --git a/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/checkDBStatus.sh index 26573ced04..0b61e3ac8e 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/checkDBStatus.sh @@ -17,9 +17,12 @@ if [ "$IGNORE_DB_STARTED_MARKER" != true ] && [ ! -f "$DB_STARTED_MARKER_FILE" ] exit 1 fi +# shellcheck disable=SC2034 ORACLE_SID="`grep $ORACLE_HOME /etc/oratab | cut -d: -f1`" OPEN_MODE="READ WRITE" +# shellcheck disable=SC2034 ORAENV_ASK=NO +# shellcheck disable=SC1090 source oraenv # Check Oracle at least one PDB has open_mode "READ WRITE" and store it in status diff --git a/OracleDatabase/SingleInstance/dockerfiles/18.3.0/Dockerfile b/OracleDatabase/SingleInstance/dockerfiles/18.3.0/Dockerfile index 57427eec63..5329e903c5 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/18.3.0/Dockerfile +++ b/OracleDatabase/SingleInstance/dockerfiles/18.3.0/Dockerfile @@ -117,4 +117,4 @@ HEALTHCHECK --interval=1m --start-period=5m \ CMD "$ORACLE_BASE/$CHECK_DB_FILE" >/dev/null || exit 1 # Define default command to start Oracle Database. -CMD exec $ORACLE_BASE/$RUN_FILE +CMD [ "/bin/bash", "-c", "exec $ORACLE_BASE/$RUN_FILE" ] diff --git a/OracleDatabase/SingleInstance/dockerfiles/18.3.0/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/18.3.0/checkDBStatus.sh index 26573ced04..0b61e3ac8e 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/18.3.0/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/18.3.0/checkDBStatus.sh @@ -17,9 +17,12 @@ if [ "$IGNORE_DB_STARTED_MARKER" != true ] && [ ! -f "$DB_STARTED_MARKER_FILE" ] exit 1 fi +# shellcheck disable=SC2034 ORACLE_SID="`grep $ORACLE_HOME /etc/oratab | cut -d: -f1`" OPEN_MODE="READ WRITE" +# shellcheck disable=SC2034 ORAENV_ASK=NO +# shellcheck disable=SC1090 source oraenv # Check Oracle at least one PDB has open_mode "READ WRITE" and store it in status diff --git a/OracleDatabase/SingleInstance/dockerfiles/18.4.0/Dockerfile.xe b/OracleDatabase/SingleInstance/dockerfiles/18.4.0/Dockerfile.xe index 4b20089f5f..eb60ffe019 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/18.4.0/Dockerfile.xe +++ b/OracleDatabase/SingleInstance/dockerfiles/18.4.0/Dockerfile.xe @@ -81,4 +81,4 @@ RUN chmod ug+x $INSTALL_DIR/*.sh && \ HEALTHCHECK --interval=1m --start-period=5m \ CMD "$ORACLE_BASE/$CHECK_DB_FILE" >/dev/null || exit 1 -CMD exec $ORACLE_BASE/$RUN_FILE +CMD [ "/bin/bash", "-c", "exec $ORACLE_BASE/$RUN_FILE" ] diff --git a/OracleDatabase/SingleInstance/dockerfiles/18.4.0/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/18.4.0/checkDBStatus.sh index ee83f082b1..d8ee075c94 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/18.4.0/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/18.4.0/checkDBStatus.sh @@ -17,9 +17,12 @@ if [ "$IGNORE_DB_STARTED_MARKER" != true ] && [ ! -f "$DB_STARTED_MARKER_FILE" ] exit 1 fi +# shellcheck disable=SC2034 ORACLE_SID="`grep $ORACLE_HOME /etc/oratab | cut -d: -f1`" OPEN_MODE="READ WRITE" +# shellcheck disable=SC2034 ORAENV_ASK=NO +# shellcheck disable=SC1090 source oraenv [ -f "$ORACLE_BASE/oradata/dbconfig/$ORACLE_SID/oratab" ] || exit 1; diff --git a/OracleDatabase/SingleInstance/dockerfiles/18.4.0/runOracle.sh b/OracleDatabase/SingleInstance/dockerfiles/18.4.0/runOracle.sh old mode 100644 new mode 100755 index 7619855138..645cf72f7f --- a/OracleDatabase/SingleInstance/dockerfiles/18.4.0/runOracle.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/18.4.0/runOracle.sh @@ -19,7 +19,11 @@ function runUserScripts { for f in $SCRIPTS_ROOT/*; do case "$f" in - *.sh) echo "$0: running $f"; . "$f" ;; + *.sh) + echo "$0: running $f" + # shellcheck disable=SC1090 + . "$f" + ;; *.sql) echo "$0: running $f"; echo "exit" | su -p oracle -c "$ORACLE_HOME/bin/sqlplus / as sysdba @$f"; echo ;; *) echo "$0: ignoring $f" ;; esac diff --git a/OracleDatabase/SingleInstance/dockerfiles/19.3.0/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/19.3.0/checkDBStatus.sh index a9436f3a84..fb2ef372c1 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/19.3.0/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/19.3.0/checkDBStatus.sh @@ -80,15 +80,19 @@ fi # Setting up ORACLE_PWD if podman secret is passed on if [ -e '/run/secrets/oracle_pwd' ]; then - export ORACLE_PWD="$(cat '/run/secrets/oracle_pwd')" + ORACLE_PWD="$(cat '/run/secrets/oracle_pwd')" + export ORACLE_PWD fi if [ "$DG_OBSERVER_ONLY" = "true" ]; then checkObserver else + # shellcheck disable=SC2034 ORACLE_SID="$(grep "$ORACLE_HOME" /etc/oratab | cut -d: -f1)" DB_ROLE="" + # shellcheck disable=SC2034 ORAENV_ASK=NO + # shellcheck disable=SC1090 source oraenv checkDatabaseRole checkPDBOpen diff --git a/OracleDatabase/SingleInstance/dockerfiles/19.3.0/runOracle.sh b/OracleDatabase/SingleInstance/dockerfiles/19.3.0/runOracle.sh index 04b6e6a7b0..8297e3ac1d 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/19.3.0/runOracle.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/19.3.0/runOracle.sh @@ -22,7 +22,9 @@ function moveFiles { mv "$ORACLE_HOME"/network/admin/sqlnet.ora "$ORACLE_BASE"/oradata/dbconfig/"$ORACLE_SID"/ mv "$ORACLE_HOME"/network/admin/listener.ora "$ORACLE_BASE"/oradata/dbconfig/"$ORACLE_SID"/ mv "$ORACLE_HOME"/network/admin/tnsnames.ora "$ORACLE_BASE"/oradata/dbconfig/"$ORACLE_SID"/ - mv "$ORACLE_HOME"/install/.docker_* "$ORACLE_BASE"/oradata/dbconfig/"$ORACLE_SID"/ + if [ -n "$(shopt -s nullglob; echo "$ORACLE_HOME"/install/.docker_*)" ]; then + mv "$ORACLE_HOME"/install/.docker_* "$ORACLE_BASE"/oradata/dbconfig/"$ORACLE_SID"/ + fi; # oracle user does not have permissions in /etc, hence cp and not mv cp /etc/oratab "$ORACLE_BASE"/oradata/dbconfig/"$ORACLE_SID"/ diff --git a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile index 6f89cb63c1..f9f6b2f8f3 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile +++ b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile @@ -140,4 +140,4 @@ HEALTHCHECK --interval=1m --start-period=5m --timeout=30s \ CMD "$ORACLE_BASE/$CHECK_DB_FILE" >/dev/null || exit 1 # Define default command to start Oracle Database. -CMD exec $ORACLE_BASE/$RUN_FILE +CMD [ "/bin/bash", "-c", "exec $ORACLE_BASE/$RUN_FILE" ] diff --git a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile.xe b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile.xe index fa5926556f..ffb8fe7a1b 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile.xe +++ b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/Dockerfile.xe @@ -91,4 +91,4 @@ WORKDIR /home/oracle HEALTHCHECK --interval=1m --start-period=5m --timeout=30s \ CMD "$ORACLE_BASE/$CHECK_DB_FILE" >/dev/null || exit 1 -CMD [ "/bin/bash", "-c", "$ORACLE_BASE/$RUN_FILE" ] +CMD [ "/bin/bash", "-c", "exec $ORACLE_BASE/$RUN_FILE" ] diff --git a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/checkDBStatus.sh old mode 100644 new mode 100755 index 38d1b750f5..81a7b0a1ff --- a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/checkDBStatus.sh @@ -80,7 +80,8 @@ fi # Setting up ORACLE_PWD if podman secret is passed on if [ -e '/run/secrets/oracle_pwd' ]; then - export ORACLE_PWD="$(cat '/run/secrets/oracle_pwd')" + ORACLE_PWD="$(cat '/run/secrets/oracle_pwd')" + export ORACLE_PWD fi # Sanitizing env for XE Database @@ -93,7 +94,9 @@ if [ "$DG_OBSERVER_ONLY" = "true" ]; then else ORACLE_SID="$(grep "$ORACLE_HOME" /etc/oratab | cut -d: -f1)" DB_ROLE="" + # shellcheck disable=SC2034 ORAENV_ASK=NO + # shellcheck disable=SC1090 source oraenv checkDatabaseRole checkPDBOpen diff --git a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/runOracle.sh b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/runOracle.sh old mode 100644 new mode 100755 index 6bc626a03d..d0b1ff99eb --- a/OracleDatabase/SingleInstance/dockerfiles/21.3.0/runOracle.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/21.3.0/runOracle.sh @@ -22,7 +22,7 @@ function moveFiles { mv "$ORACLE_BASE_HOME"/network/admin/sqlnet.ora "$ORACLE_BASE"/oradata/dbconfig/"$ORACLE_SID"/ mv "$ORACLE_BASE_HOME"/network/admin/listener.ora "$ORACLE_BASE"/oradata/dbconfig/"$ORACLE_SID"/ mv "$ORACLE_BASE_HOME"/network/admin/tnsnames.ora "$ORACLE_BASE"/oradata/dbconfig/"$ORACLE_SID"/ - if [ -a "$ORACLE_HOME"/install/.docker_* ]; then + if [ -n "$(shopt -s nullglob; echo "$ORACLE_HOME"/install/.docker_*)" ]; then mv "$ORACLE_HOME"/install/.docker_* "$ORACLE_BASE"/oradata/dbconfig/"$ORACLE_SID"/ fi; @@ -170,7 +170,8 @@ fi; # Setting up ORACLE_PWD if podman secret is passed on if [ -e '/run/secrets/oracle_pwd' ]; then - export ORACLE_PWD="$(cat '/run/secrets/oracle_pwd')" + ORACLE_PWD="$(cat '/run/secrets/oracle_pwd')" + export ORACLE_PWD fi # Sanitizing env for XE @@ -230,6 +231,7 @@ export ORACLE_CHARACTERSET=${ORACLE_CHARACTERSET:-AL32UTF8} # Call relinkOracleBinary.sh before the database is created or started if [ "${ORACLE_SID}" != "XE" ]; then + # shellcheck disable=SC1090 source "$ORACLE_BASE/$RELINK_BINARY_FILE" fi; diff --git a/OracleDatabase/SingleInstance/dockerfiles/23.6.0/Containerfile.free b/OracleDatabase/SingleInstance/dockerfiles/23.6.0/Containerfile.free index 5ce34ff314..149db15568 100644 --- a/OracleDatabase/SingleInstance/dockerfiles/23.6.0/Containerfile.free +++ b/OracleDatabase/SingleInstance/dockerfiles/23.6.0/Containerfile.free @@ -119,4 +119,4 @@ HEALTHCHECK --interval=1m --start-period=5m --timeout=30s \ EXPOSE 1521/tcp -CMD [ "/bin/bash", "-c", "$ORACLE_BASE/$RUN_FILE" ] +CMD [ "/bin/bash", "-c", "exec $ORACLE_BASE/$RUN_FILE" ] diff --git a/OracleDatabase/SingleInstance/dockerfiles/23.6.0/checkDBStatus.sh b/OracleDatabase/SingleInstance/dockerfiles/23.6.0/checkDBStatus.sh index bfa8d22662..6f643c8b87 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/23.6.0/checkDBStatus.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/23.6.0/checkDBStatus.sh @@ -97,7 +97,7 @@ else DB_ROLE="" # shellcheck disable=SC2034 ORAENV_ASK=NO - # shellcheck source=/dev/null + # shellcheck disable=SC1090 source oraenv checkDatabaseRole checkPDBOpen diff --git a/OracleDatabase/SingleInstance/dockerfiles/23.6.0/runOracle.sh b/OracleDatabase/SingleInstance/dockerfiles/23.6.0/runOracle.sh index dc72b196c9..fe1ba5703b 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/23.6.0/runOracle.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/23.6.0/runOracle.sh @@ -222,7 +222,7 @@ export ORACLE_CHARACTERSET=${ORACLE_CHARACTERSET:-AL32UTF8} # Call relinkOracleBinary.sh before the database is created or started if [ "${ORACLE_SID}" != "FREE" ]; then - # shellcheck source=/dev/null + # shellcheck disable=SC1090 source "$ORACLE_BASE/$RELINK_BINARY_FILE" fi; diff --git a/OracleDatabase/SingleInstance/dockerfiles/23.6.0/runUserScripts.sh b/OracleDatabase/SingleInstance/dockerfiles/23.6.0/runUserScripts.sh index 6b2db24f14..9686e00dd5 100755 --- a/OracleDatabase/SingleInstance/dockerfiles/23.6.0/runUserScripts.sh +++ b/OracleDatabase/SingleInstance/dockerfiles/23.6.0/runUserScripts.sh @@ -27,7 +27,7 @@ if [ -d "$SCRIPTS_ROOT" ] && [ -n "$(ls -A "$SCRIPTS_ROOT")" ]; then for f in "$SCRIPTS_ROOT"/*; do case "$f" in *.sh) echo "$0: running $f"; - # shellcheck source=/dev/null + # shellcheck disable=SC1090 . "$f" ;; *.sql) echo "$0: running $f"; echo "exit" | "$ORACLE_HOME"/bin/sqlplus -s "/ as sysdba" @"$f"; echo ;; *) echo "$0: ignoring $f" ;;