Regalamiunsorriso/local-jsp-docker/tomcat/entrypoint.sh

47 lines
No EOL
1.3 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"
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/"
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
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:-local-model}"
exec catalina.sh run