Skip to content

Commit

Permalink
Support for custom add-on ZIP format. Support update of custom add-on…
Browse files Browse the repository at this point in the history
… data dir updates for existing containers
  • Loading branch information
Daniel-Nashed committed Oct 13, 2024
1 parent 97a5524 commit 195adb8
Show file tree
Hide file tree
Showing 5 changed files with 129 additions and 23 deletions.
75 changes: 63 additions & 12 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# Copyright IBM Corporation 2015, 2020 - APACHE 2.0 see LICENSE
############################################################################

# Version 2.3.1 21.07.2024
# Version 2.3.2 14.10.2024

# Main Script to build images.
# Run without parameters for detailed syntax.
Expand All @@ -27,7 +27,7 @@ fi
# Default: Check if software exits
CHECK_SOFTWARE=yes

CONTAINER_BUILD_SCRIPT_VERSION=2.3.1
CONTAINER_BUILD_SCRIPT_VERSION=2.3.2

# OnTime version
SELECT_ONTIME_VERSION=1.11.1
Expand Down Expand Up @@ -901,6 +901,48 @@ check_exposed_ports()
return 0
}

add_custom_addon_label()
{
local ADDON_NAME=
local ADDON_VER=
local ADDON_TEXT=

if [ -z "$1" ]; then
return 0
fi

ADDON_NAME="$(basename $(echo $1| cut -f1 -d# | cut -f1 -d'.'))"
ADDON_VER="$(echo $1| cut -f3 -d#)"

if [ -z "$ADDON_VER" ]; then
ADDON_TEXT="$ADDON_NAME"
else
ADDON_TEXT="$ADDON_NAME=$ADDON_VER"
fi

if [ -z "$CONTAINER_DOMINO_CUSTOM_ADDONS" ]; then
CONTAINER_DOMINO_CUSTOM_ADDONS="$ADDON_TEXT"
else
CONTAINER_DOMINO_CUSTOM_ADDONS="$CONTAINER_DOMINO_CUSTOM_ADDONS,$ADDON_TEXT"
fi
}


check_custom_addon_label()
{

if [ -z "$CUSTOM_ADD_ONS" ]; then
return 0
fi

local CUSTOM_INSTALL_FILE=

for CUSTOM_INSTALL_FILE in $(echo "$CUSTOM_ADD_ONS" | tr "," "\n" ) ; do
add_custom_addon_label "$CUSTOM_INSTALL_FILE"
done
}


add_addon_label()
{

Expand All @@ -919,6 +961,7 @@ add_addon_label()
fi
}


check_addon_label()
{
if [ "$DOCKER_FILE" = "dockerfile_hcl" ] || [ "$DominoResponseFile" = "domino14_full_install.properties" ]; then
Expand Down Expand Up @@ -973,9 +1016,11 @@ build_domino()
{
CONTAINER_DOMINO_ADDONS=
check_addon_label
check_custom_addon_label

echo
echo "CONTAINER_DOMINO_ADDONS: [$CONTAINER_DOMINO_ADDONS]"
echo "CONTAINER_DOMINO_CUSTON_ADDONS: [$CONTAINER_DOMINO_CUSTOM_ADDONS]"
echo

$CONTAINER_CMD build --no-cache $BUILD_OPTIONS $DOCKER_PULL_OPTION \
Expand Down Expand Up @@ -1003,6 +1048,7 @@ build_domino()
--label DominoContainer.version="$DOCKER_IMAGE_VERSION" \
--label DominoContainer.buildtime="$BUILDTIME" \
--label DominoContainer.addons="$CONTAINER_DOMINO_ADDONS" \
--label DominoContainer.custom-addons="$CONTAINER_DOMINO_CUSTOM_ADDONS" \
--build-arg PROD_NAME=$PROD_NAME \
--build-arg PROD_VER=$PROD_VER \
--build-arg DOMLP_VER=$DOMLP_VER \
Expand Down Expand Up @@ -1424,11 +1470,13 @@ check_software()
DOWNLOAD_1ST_FILE=$(basename $CHECK_FILE)
fi

http_head_check "$CHECK_FILE"
if [ "$?" = "1" ]; then
CURRENT_FILE="$CHECK_FILE"
FOUND=TRUE
break
if [ -z "$FOUND" ]; then
http_head_check "$CHECK_FILE"
if [ "$?" = "1" ]; then
CURRENT_FILE="$CHECK_FILE"
FOUND=TRUE
break
fi
fi
;;

Expand All @@ -1442,11 +1490,14 @@ check_software()
FOUND=TRUE
break
else
check_domdownload "$CHECK_FILE" "$CURRENT_FILE_ID" "$CURRENT_HASH"
if [ -r "$SOFTWARE_DIR/$CHECK_FILE" ]; then
CURRENT_FILE="$CHECK_FILE"
FOUND=TRUE
break

if [ "$CURRENT_FILE_ID" != "x" ]; then
check_domdownload "$CHECK_FILE" "$CURRENT_FILE_ID" "$CURRENT_HASH"
if [ -r "$SOFTWARE_DIR/$CHECK_FILE" ]; then
CURRENT_FILE="$CHECK_FILE"
FOUND=TRUE
break
fi
fi
fi
;;
Expand Down
23 changes: 22 additions & 1 deletion dockerfiles/install_dir_common/script_lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -606,6 +606,11 @@ download_tar_with_hash()
esac

case "$DOWNLOAD_FILE" in

*.zip)
TAR_OPT=unzip
;;

*.tar.gz)
TAR_OPT=-xz
;;
Expand Down Expand Up @@ -633,7 +638,23 @@ download_tar_with_hash()
exit 1
fi

HASH=$($CURL_CMD -s $DOWNLOAD_FILE | tee >(tar $TAR_OPT --no-same-owner 2>/dev/null) | sha256sum -b | cut -d" " -f1)
if [ "$TAR_OPT" = "unzip" ]; then

header "Unzip $DOWNLOAD_FILE"

local ZIP_FILE=custom_addon_download.zip
$CURL_CMD -s $DOWNLOAD_FILE -o "$ZIP_FILE"
HASH=$(sha256sum -b "$ZIP_FILE" | cut -d" " -f1)

if [ "$HASH" = "$CHECK_HASH" ]; then
unzip -o -q "$ZIP_FILE"
fi

find .

else
HASH=$($CURL_CMD -s $DOWNLOAD_FILE | tee >(tar $TAR_OPT --no-same-owner 2>/dev/null) | sha256sum -b | cut -d" " -f1)
fi

if [ "$HASH" = "$CHECK_HASH" ]; then
return 0
Expand Down
8 changes: 4 additions & 4 deletions dockerfiles/install_dir_common/software.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,10 @@ verse|3.2.2|HCL_Verse_3.2.2.zip|tp1U3jxkBOxNvpMll3ldM|5d554d1b918b9bb84f5c975e24
capi|12.0|CAPIToolkit_1200_MP.zip|-|545869c8a09c98ac8fde06fdff6f106060f09705e621cc7103acf055baaec037
capi|12.0.2|CAPIToolkit_1202_MP.zip|aZyOpGR0hXuO6HThl8DdJ|10ef46a999d4da73a1e1f3b1e2a5a7268c2011fdb1dff557f3fc7536a52d8fd3
capi|14.0|CAPIToolkit_1400_Linux.zip|zpJqVq44zayvOhEsiGbKq|02fc99bd6e0233352756fbf217413bac3088a5eb3698675616a5c412624fb176
borg|1.2.7|borg-linuxnew64-1.2.7,https://github.com/borgbackup/borg/releases/download/1.2.7/borg-linuxnew64|-|d8d3313ebaf48ba135001b7f230b494259f112e56adf0d5f952af999742e1190
borg|1.2.8|borg-linuxnew64-1.2.8,https://github.com/borgbackup/borg/releases/download/1.2.8/borg-linuxnew64|-|85847a2ceb27d4a6c0ca0c0fb92d31bb2c1fcf6c77df1b2275b3f6f161d3571c
tika|2.9.1|tika-server-standard-2.9.1.jar,https://dlcdn.apache.org/tika/2.9.1/tika-server-standard-2.9.1.jar|-|4e38d309c9396892ae14b4337cdf13f90f83da81b3b8123d72fde08fea2120bd
tika|2.9.2|tika-server-standard-2.9.2.jar,https://dlcdn.apache.org/tika/2.9.2/tika-server-standard-2.9.2.jar|-|379cdb319b80618d166057beecdb445b677d099c438ec026e5810239c1cd03d5
borg|1.2.7|borg-linuxnew64-1.2.7,https://github.com/borgbackup/borg/releases/download/1.2.7/borg-linuxnew64|x|d8d3313ebaf48ba135001b7f230b494259f112e56adf0d5f952af999742e1190
borg|1.2.8|borg-linuxnew64-1.2.8,https://github.com/borgbackup/borg/releases/download/1.2.8/borg-linuxnew64|x|85847a2ceb27d4a6c0ca0c0fb92d31bb2c1fcf6c77df1b2275b3f6f161d3571c
tika|2.9.1|tika-server-standard-2.9.1.jar,https://dlcdn.apache.org/tika/2.9.1/tika-server-standard-2.9.1.jar|x|4e38d309c9396892ae14b4337cdf13f90f83da81b3b8123d72fde08fea2120bd
tika|2.9.2|tika-server-standard-2.9.2.jar,https://dlcdn.apache.org/tika/2.9.2/tika-server-standard-2.9.2.jar|x|379cdb319b80618d166057beecdb445b677d099c438ec026e5810239c1cd03d5
safelinx|1.4.1|HCL-SafeLinx-1410-x86_64.tar.gz|AbiYxUssdE1MT0GtR4gH8|c8c207f810343c7ab47997c1006e144998d0717080241ea6e6f2644191499c31
safelinx|1.4.2|HCL-SafeLinx-1420-x86_64.tar.gz|75sNbH9gws5m6nZ3M5yR6|dfe9244848fd2ad3367db002de5dcdbf6b577ad8d240db75298b411b03c04ef0
nomadweb|1.0.11|HCL_Nomad_web_1.0.11_20240305-18_for_HCL_SafeLinx.zip|y2cf6x3wcUpgtAI3Gldbi|e7484c7d42f8357cf79d609363c13fb08da0baee445e0d4bebb71497dfd99bbc
Expand Down
38 changes: 36 additions & 2 deletions dockerfiles/install_dir_domino/install_domino.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
############################################################################
# Copyright Nash!Com, Daniel Nashed 2019, 2023 - APACHE 2.0 see LICENSE
# Copyright Nash!Com, Daniel Nashed 2019, 2024 - APACHE 2.0 see LICENSE
# Copyright IBM Corporation 2015, 2019 - APACHE 2.0 see LICENSE
############################################################################

Expand Down Expand Up @@ -31,6 +31,8 @@ INST_LP_LOG=$DOMDOCK_LOG_DIR/install_domlp.log
INST_TRAVELER_LOG=$DOMDOCK_LOG_DIR/install_traveler.log
INST_RESTAPI_LOG=$DOMDOCK_LOG_DIR/install_restapi.log

DOMINO_CUSTOM_DATA_PATH=/tmp/customdata

check_install_tika()
{
if [ -z "$TIKA_INSTALL" ]; then
Expand Down Expand Up @@ -893,22 +895,31 @@ install_one_custom_add_on()
local ALL_FILES=
local CURRENT_FILE=
local TARGET_FILE=
local ADDON_NAME=
local ADDON_VER=

if [ -z "$1" ]; then
echo "No custom add-on specified"
return 0
fi

header "Installing Custom Add-On $(echo $1| cut -f1 -d#)"
ADDON_NAME="$(basename $(echo $1| cut -f1 -d# | cut -f1 -d'.'))"
ADDON_VER="$(echo $1| cut -f3 -d#)"

header "Installing Custom Add-On $ADDON_NAME"

cd $INSTALL_DIR
mkdir custom-add-on
cd custom-add-on

download_tar_with_hash "$DownloadFrom" "$1"

create_directory "$DOMINO_CUSTOM_DATA_PATH" $DOMINO_USER $DOMINO_GROUP $DIR_PERM

install_files_from_dir "domino-bin" "$Notes_ExecDirectory" root root 755 755
install_files_from_dir "domino-data" "$DOMINO_DATA_PATH" "$DOMINO_USER" "$DOMINO_GROUP" 600 700
# Remember files for custom addon tar
install_files_from_dir "domino-data" "$DOMINO_CUSTOM_DATA_PATH" "$DOMINO_USER" "$DOMINO_GROUP" 600 700
install_files_from_dir linux-bin /usr/bin root root 755 755

create_servertask_links "servertasks.txt"
Expand All @@ -921,6 +932,29 @@ install_one_custom_add_on()
echo
fi

# Get version from custom install line, or version.txt. Else use current timestamp
if [ -z "$ADDON_VER" ]; then
if [ -e "version.txt" ]; then
ADDON_VER=$(cat "version.txt" | xargs)
else
ADDON_VER=$(LANG=C date -u +"%y%m%d%H%M%S")
fi
fi

# Set add-on version
echo $ADDON_VER > "$DOMDOCK_TXT_DIR/${ADDON_NAME}_ver.txt"
echo $ADDON_VER > "$DOMINO_DATA_PATH/${ADDON_NAME}_ver.txt"
echo $ADDON_VER > "$DOMINO_CUSTOM_DATA_PATH/${ADDON_NAME}_ver.txt"

# Copy add-on custom data, even it will be in the full data dir
local INSTALL_ADDON_DATA_TAR=$DOMDOCK_DIR/install_data_addon_${ADDON_NAME}.taz

local CURRENT_DIR=$(pwd)
cd "$DOMINO_CUSTOM_DATA_PATH"
tar -czf "$INSTALL_ADDON_DATA_TAR" *
remove_directory "$DOMINO_CUSTOM_DATA_PATH"


cd $INSTALL_DIR
remove_directory custom-add-on
}
Expand Down
8 changes: 4 additions & 4 deletions software/software.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,10 @@ verse|3.2.2|HCL_Verse_3.2.2.zip|tp1U3jxkBOxNvpMll3ldM|5d554d1b918b9bb84f5c975e24
capi|12.0|CAPIToolkit_1200_MP.zip|-|545869c8a09c98ac8fde06fdff6f106060f09705e621cc7103acf055baaec037
capi|12.0.2|CAPIToolkit_1202_MP.zip|aZyOpGR0hXuO6HThl8DdJ|10ef46a999d4da73a1e1f3b1e2a5a7268c2011fdb1dff557f3fc7536a52d8fd3
capi|14.0|CAPIToolkit_1400_Linux.zip|zpJqVq44zayvOhEsiGbKq|02fc99bd6e0233352756fbf217413bac3088a5eb3698675616a5c412624fb176
borg|1.2.7|borg-linuxnew64-1.2.7,https://github.com/borgbackup/borg/releases/download/1.2.7/borg-linuxnew64|-|d8d3313ebaf48ba135001b7f230b494259f112e56adf0d5f952af999742e1190
borg|1.2.8|borg-linuxnew64-1.2.8,https://github.com/borgbackup/borg/releases/download/1.2.8/borg-linuxnew64|-|85847a2ceb27d4a6c0ca0c0fb92d31bb2c1fcf6c77df1b2275b3f6f161d3571c
tika|2.9.1|tika-server-standard-2.9.1.jar,https://dlcdn.apache.org/tika/2.9.1/tika-server-standard-2.9.1.jar|-|4e38d309c9396892ae14b4337cdf13f90f83da81b3b8123d72fde08fea2120bd
tika|2.9.2|tika-server-standard-2.9.2.jar,https://dlcdn.apache.org/tika/2.9.2/tika-server-standard-2.9.2.jar|-|379cdb319b80618d166057beecdb445b677d099c438ec026e5810239c1cd03d5
borg|1.2.7|borg-linuxnew64-1.2.7,https://github.com/borgbackup/borg/releases/download/1.2.7/borg-linuxnew64|x|d8d3313ebaf48ba135001b7f230b494259f112e56adf0d5f952af999742e1190
borg|1.2.8|borg-linuxnew64-1.2.8,https://github.com/borgbackup/borg/releases/download/1.2.8/borg-linuxnew64|x|85847a2ceb27d4a6c0ca0c0fb92d31bb2c1fcf6c77df1b2275b3f6f161d3571c
tika|2.9.1|tika-server-standard-2.9.1.jar,https://dlcdn.apache.org/tika/2.9.1/tika-server-standard-2.9.1.jar|x|4e38d309c9396892ae14b4337cdf13f90f83da81b3b8123d72fde08fea2120bd
tika|2.9.2|tika-server-standard-2.9.2.jar,https://dlcdn.apache.org/tika/2.9.2/tika-server-standard-2.9.2.jar|x|379cdb319b80618d166057beecdb445b677d099c438ec026e5810239c1cd03d5
safelinx|1.4.1|HCL-SafeLinx-1410-x86_64.tar.gz|AbiYxUssdE1MT0GtR4gH8|c8c207f810343c7ab47997c1006e144998d0717080241ea6e6f2644191499c31
safelinx|1.4.2|HCL-SafeLinx-1420-x86_64.tar.gz|75sNbH9gws5m6nZ3M5yR6|dfe9244848fd2ad3367db002de5dcdbf6b577ad8d240db75298b411b03c04ef0
nomadweb|1.0.11|HCL_Nomad_web_1.0.11_20240305-18_for_HCL_SafeLinx.zip|y2cf6x3wcUpgtAI3Gldbi|e7484c7d42f8357cf79d609363c13fb08da0baee445e0d4bebb71497dfd99bbc
Expand Down

0 comments on commit 195adb8

Please sign in to comment.