Regalamiunsorriso/local-jsp-docker/tomcat/entrypoint.sh
MaddoScientisto dd7d4c865b
All checks were successful
Publish FaceAI Container / publish (push) Successful in 6m52s
Enhance Docker and PowerShell scripts for improved functionality and maintainability
- Updated Dockerfile to include default MySQL client for better database interaction.
- Modified entrypoint.sh to support additional workspace for legacy applications and added MySQL readiness check before startup.
- Enhanced PowerShell script for trimming MySQL dumps to include overlay dumps and improved error handling for missing race and user IDs.
- Added new image files and face encoding pickles for various projects, ensuring comprehensive data availability.
- Removed outdated face encoding pickle from PISA directory to maintain data relevance.

Co-authored-by: Copilot <copilot@github.com>
2026-04-22 22:45:44 +02:00

77 lines
No EOL
2.2 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
export CATALINA_TMPDIR=/usr/local/tomcat/temp
runtime_root="/usr/local/tomcat/webapps/ROOT"
workspace_www="/workspace/www"
workspace_rus="/workspace/rus"
rm -rf "$runtime_root"
mkdir -p "$runtime_root"
shopt -s dotglob nullglob
for source_path in "$workspace_www"/*; do
entry_name="$(basename "$source_path")"
if [ "$entry_name" = "WEB-INF" ]; then
continue
fi
ln -s "$source_path" "$runtime_root/$entry_name"
done
mkdir -p "$runtime_root/WEB-INF"
cp -a "$workspace_www/WEB-INF/." "$runtime_root/WEB-INF/"
if [ -d "$workspace_rus/WEB-INF/classes" ]; then
mkdir -p "$runtime_root/WEB-INF/classes"
cp -a "$workspace_rus/WEB-INF/classes/." "$runtime_root/WEB-INF/classes/"
fi
mkdir -p /usr/local/tomcat/conf/Catalina/localhost
cat > /usr/local/tomcat/conf/Catalina/localhost/ROOT.xml <<'EOF'
<Context>
<Resources allowLinking="true" />
</Context>
EOF
/usr/local/bin/bootstrap-docbase.sh
wait_for_mysql() {
local host="${LOCAL_DB_HOST:-mysql}"
local port="${LOCAL_DB_PORT:-3306}"
local database="${LOCAL_DB_NAME:-pg}"
local user="${LOCAL_DB_USER:-root}"
local password="${LOCAL_DB_PASSWORD:-root}"
local attempts=60
for ((attempt=1; attempt<=attempts; attempt++)); do
if mysql --protocol=TCP -h "$host" -P "$port" -u"$user" -p"$password" -D "$database" -Nse "SELECT 1 FROM parm WHERE codice = 'REWRITE_URL_ENABLE' LIMIT 1" >/dev/null 2>&1; then
echo "MySQL is ready for legacy app startup"
return 0
fi
echo "Waiting for MySQL readiness ($attempt/$attempts)"
sleep 2
done
echo "MySQL did not become ready for legacy app startup" >&2
return 1
}
wait_for_mysql
patch_context_param() {
local param_name="$1"
local param_value="$2"
PARAM_NAME="$param_name" PARAM_VALUE="$param_value" perl -0pi -e 's#(<param-name>\Q$ENV{PARAM_NAME}\E</param-name>\s*<param-value>)[^<]*(</param-value>)#$1 . $ENV{PARAM_VALUE} . $2#egs' "$runtime_root/WEB-INF/web.xml"
}
patch_context_param database "//${LOCAL_DB_HOST:-mysql}/${LOCAL_DB_NAME:-pg}"
patch_context_param catalog "${LOCAL_DB_NAME:-pg}"
patch_context_param user "${LOCAL_DB_USER:-root}"
patch_context_param password "${LOCAL_DB_PASSWORD:-root}"
patch_context_param instance "${LOCAL_APP_INSTANCE:-main}"
exec catalina.sh run