commit dfb0797b0961ec2585e1da7529487b90b8b92197 Author: Ermis Wieger Date: Thu Jun 13 11:45:24 2024 +0200 init diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9004334 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM alpine:3.20.0 + +WORKDIR /app + +COPY utilities /app/utilities/ +COPY entrypoint.sh /app/docker-entrypoint.sh +COPY setenv_tmp /app/setenv_tmp + +RUN apk add --no-cache bash +RUN ["chmod", "+x", "/app/docker-entrypoint.sh"] +RUN ["chmod", "+x", "/app/utilities/DBFileSync.sh"] +RUN ["chmod", "+x", "/app/utilities/DBFileSync.jar"] +RUN ["chmod", "+x", "/app/utilities/DBFileSyncTimer.txt"] + + +ENTRYPOINT ["/app/docker-entrypoint.sh"] + +CMD ["sh"] \ No newline at end of file diff --git a/Dockerfile_new b/Dockerfile_new new file mode 100644 index 0000000..fcafee7 --- /dev/null +++ b/Dockerfile_new @@ -0,0 +1,14 @@ +FROM alpine:3.20.0 + +WORKDIR /app + +COPY utilities /app/utilities/ +COPY entrypoint.sh /app/docker-entrypoint.sh + +RUN ["chmod", "+x", "/app/docker-entrypoint.sh"] +RUN ["chmod", "+x", "/app/utilities/DBFileSync.sh"] +RUN ["chmod", "+x", "/app/utilities/DBFileSync.jar"] + +ENTRYPOINT ["/app/docker-entrypoint.sh"] + +CMD ["sh"] \ No newline at end of file diff --git a/StartDBFileSync b/StartDBFileSync new file mode 100644 index 0000000..e69de29 diff --git a/dbfilesync_image.tar b/dbfilesync_image.tar new file mode 100644 index 0000000..4fa07e5 Binary files /dev/null and b/dbfilesync_image.tar differ diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..41fb11e --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +checkenvvars() { + declare -a REQUIRED_ENV_VARS=( + SMARTIT_DB_TYPE + SMARTIT_DB_HOST_NAME + SMARTIT_DB_PORT + SMARTIT_DB_NAME + SMARTIT_DB_SYSTEM_USER + SMARTIT_DB_SYSTEM_PASSWORD + DBFILESYNC_PRODUCT) + if [ -z "${SMARTIT_JDBC_URL}" ]; then + REQUIRED_ENV_VARS+=('SMARTIT_DB_TYPE' 'SMARTIT_DB_HOST_NAME' 'SMARTIT_DB_PORT' 'SMARTIT_DB_NAME' 'SMARTIT_DB_SYSTEM_USER' 'SMARTIT_DB_SYSTEM_PASSWORD' 'DBFILESYNC_PRODUCT') + fi + FAILED=false + for VAR in "${REQUIRED_ENV_VARS[@]}" ; do + if [ -z "${!VAR:-}" ] ; then + echo "ERROR: Required environment variable \"$VAR\" is not set." + FAILED=true + fi + done + + if "$FAILED"; then + error + fi +} + +function error () { + echo -e "\nFAILED. Exiting due to errors !!!" + exit 1 +} + +#ls -l +checkenvvars +cp -r utilities /dbfilesync/ +sed -e 's@SMARTIT_DB_TYPE_REPL@'"${SMARTIT_DB_TYPE/@/\\@}"'@' -e 's@SMARTIT_DB_HOST_NAME_REPL@'"${SMARTIT_DB_HOST_NAME/@/\\@}"'@' -e 's@SMARTIT_DB_PORT_REPL@'"${SMARTIT_DB_PORT/@/\\@}"'@' -e 's@SMARTIT_DB_NAME_REPL@'"${SMARTIT_DB_NAME/@/\\@}"'@' -e 's@SMARTIT_DB_SYSTEM_USER_REPL@'"${SMARTIT_DB_SYSTEM_USER/@/\\@}"'@' -e 's@SMARTIT_DB_SYSTEM_PASSWORD_REPL@'"${SMARTIT_DB_SYSTEM_PASSWORD/@/\\@}"'@' -e 's@DBFILESYNC_PRODUCT_REPL@'"${DBFILESYNC_PRODUCT/@/\\@}"'@' setenv_tmp > /dbfilesync/utilities/setenv +touch /dbfilesync/utilities/DBFileSyncNew.log diff --git a/initdbfilesync.tar b/initdbfilesync.tar new file mode 100644 index 0000000..1058549 Binary files /dev/null and b/initdbfilesync.tar differ diff --git a/setenv b/setenv new file mode 100755 index 0000000..d081c84 --- /dev/null +++ b/setenv @@ -0,0 +1 @@ +export SMARTIT_DB_TYPE="$SMARTIT_DB_TYPE" \ No newline at end of file diff --git a/setenv_tmp b/setenv_tmp new file mode 100644 index 0000000..c90664c --- /dev/null +++ b/setenv_tmp @@ -0,0 +1,7 @@ +export SMARTIT_DB_TYPE="SMARTIT_DB_TYPE_REPL" +export SMARTIT_DB_HOST_NAME="SMARTIT_DB_HOST_NAME_REPL" +export SMARTIT_DB_PORT="SMARTIT_DB_PORT_REPL" +export SMARTIT_DB_NAME="SMARTIT_DB_NAME_REPL" +export SMARTIT_DB_SYSTEM_USER="SMARTIT_DB_SYSTEM_USER_REPL" +export SMARTIT_DB_SYSTEM_PASSWORD="SMARTIT_DB_SYSTEM_PASSWORD_REPL" +export DBFILESYNC_PRODUCT="DBFILESYNC_PRODUCT_REPL" \ No newline at end of file diff --git a/utilities/DBFileSync.jar b/utilities/DBFileSync.jar new file mode 100755 index 0000000..b4aed82 Binary files /dev/null and b/utilities/DBFileSync.jar differ diff --git a/utilities/DBFileSync.log b/utilities/DBFileSync.log new file mode 100644 index 0000000..636827e --- /dev/null +++ b/utilities/DBFileSync.log @@ -0,0 +1,24 @@ +closing db connectionclosing db connection + +closing db connectionclosing db connection + +closing db connectionclosing db connection + +closing db connection +closing db connection +closing db connection +closing db connection +closing db connection +closing db connection +closing db connection +closing db connection +closing db connection +closing db connection +closing db connection +closing db connection +closing db connection +closing db connectionclosing db connection + +closing db connection +closing db connection +closing db connection diff --git a/utilities/DBFileSync.sh b/utilities/DBFileSync.sh new file mode 100755 index 0000000..525dfb7 --- /dev/null +++ b/utilities/DBFileSync.sh @@ -0,0 +1,39 @@ +#!/bin/bash +SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" +source $SCRIPTPATH/setenv + +echo "$SCRIPTPATH" +DB_TYPE=$SMARTIT_DB_TYPE +DB_HOST=$SMARTIT_DB_HOST_NAME +DB_PORT=$SMARTIT_DB_PORT +DB_NAME=$SMARTIT_DB_NAME +DB_USER=$SMARTIT_DB_SYSTEM_USER +DB_PWD=$SMARTIT_DB_SYSTEM_PASSWORD +#DB_PWD="bW1fe56tg3V0umDDG6ne" +CONFIG_PATH=/dbfilesync/utilities/DBFileSyncTimer.txt +PRODUCT_NAME=$DBFILESYNC_PRODUCT +TRIGGER_INTERVAL=$DBFILESYNCH_UTIL_INTERVAL +ENCRYPT_OUTPUT="$($JAVA_HOME/bin/java -cp $SCRIPTPATH/DBFileSync.jar com.bmc.dbfilesync.EncryptionUtils -pwd $DB_PWD)" +#echo "${DB_PWD[0]}" +ENCRYPTED_PWD=${ENCRYPT_OUTPUT[0]} +ALWAYS_ON=No +if [ -z "$TRIGGER_INTERVAL" ] +then + TRIGGER_INTERVAL=120 +fi +echo $TRIGGER_INTERVAL +if [ -z "$JAVA_OPTS_DB_FILESYNC" ] +then + JAVA_OPTS_DB_FILESYNC="-Xms256m -Xmx512m -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=20 -XX:ConcGCThreads=5" +fi +JAVA_OPTS="${JAVA_OPTS_DB_FILESYNC}" +if [[ ! -z ${SMARTIT_JDBC_URL} ]] && [[ ${DB_TYPE} == "oracle" || ${SMARTIT_DB_TYPE} == "postgres" || ${SMARTIT_DB_TYPE} == "postgresql" ]]; then +$JAVA_HOME/bin/java ${JAVA_OPTS} -cp $SCRIPTPATH/DBFileSync.jar com.bmc.dbfilesync.DBFileSyncTrigger -dbType $DB_TYPE -jdbc-url "$SMARTIT_JDBC_URL" -dbUser "$DB_USER" -dbPassword "$ENCRYPTED_PWD" -configPath "$CONFIG_PATH" -productName "$PRODUCT_NAME" -triggerInterval "$TRIGGER_INTERVAL" -alwaysOn "$ALWAYS_ON" >> /tmp/DBFileSyncNew.log & +else +$JAVA_HOME/bin/java ${JAVA_OPTS} -cp $SCRIPTPATH/DBFileSync.jar com.bmc.dbfilesync.DBFileSyncTrigger -dbType "$DB_TYPE" -dbHost "$DB_HOST" -dbPort "$DB_PORT" -dbName "$DB_NAME" -dbUser "$DB_USER" -dbPassword "$ENCRYPTED_PWD" -configPath "$CONFIG_PATH" -productName "$PRODUCT_NAME" -triggerInterval "$TRIGGER_INTERVAL" -alwaysOn "$ALWAYS_ON" >> /tmp/DBFileSyncNew.log & +fi +STATUS="$?" +if [ ! STATUS ];then + echo 'Failed to run rebranding tool' + exit 1 +fi diff --git a/utilities/DBFileSyncTimer.txt b/utilities/DBFileSyncTimer.txt new file mode 100644 index 0000000..f4b7c1b --- /dev/null +++ b/utilities/DBFileSyncTimer.txt @@ -0,0 +1,2 @@ + +MAX_DOWNLOAD_TIMESTAMP=