#!/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' 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#(\Q$ENV{PARAM_NAME}\E\s*)[^<]*()#$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