All checks were successful
Build And Publish Production Image / Build And Publish Production Image (push) Successful in 39s
49 lines
2.6 KiB
Bash
49 lines
2.6 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
APP_DB_NAME=${APP_DB_NAME:-condado}
|
|
APP_DB_USER=${SPRING_DATASOURCE_USERNAME:-condado}
|
|
APP_DB_PASSWORD=${SPRING_DATASOURCE_PASSWORD:-condado}
|
|
|
|
# ── Initialise PostgreSQL data directory on first run ─────────────────────────
|
|
if [ ! -f /var/lib/postgresql/data/PG_VERSION ]; then
|
|
echo "Initialising PostgreSQL data directory..."
|
|
su -c "/usr/lib/postgresql/16/bin/initdb -D /var/lib/postgresql/data --encoding=UTF8 --locale=C" postgres
|
|
|
|
# Start postgres temporarily to create the app database and user
|
|
su -c "/usr/lib/postgresql/16/bin/pg_ctl -D /var/lib/postgresql/data -w start" postgres
|
|
|
|
su -c "psql -v ON_ERROR_STOP=1 -c \"CREATE USER ${APP_DB_USER} WITH PASSWORD '${APP_DB_PASSWORD}';\"" postgres
|
|
su -c "psql -v ON_ERROR_STOP=1 -c \"CREATE DATABASE ${APP_DB_NAME} OWNER ${APP_DB_USER};\"" postgres
|
|
|
|
su -c "/usr/lib/postgresql/16/bin/pg_ctl -D /var/lib/postgresql/data -w stop" postgres
|
|
echo "PostgreSQL initialised."
|
|
fi
|
|
|
|
# ── Ensure supervisor log directory exists ────────────────────────────────────
|
|
mkdir -p /var/log/supervisor
|
|
|
|
# ── Defaults for all-in-one local PostgreSQL ─────────────────────────────────
|
|
export SPRING_DATASOURCE_URL=${SPRING_DATASOURCE_URL:-jdbc:postgresql://localhost:5432/${APP_DB_NAME}}
|
|
export SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME:-${APP_DB_USER}}
|
|
export SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD:-${APP_DB_PASSWORD}}
|
|
export JWT_EXPIRATION_MS=${JWT_EXPIRATION_MS:-86400000}
|
|
|
|
# ── Log all Spring Boot environment variables for debugging ──────────────────
|
|
echo "========================================"
|
|
echo "Spring Boot Configuration:"
|
|
echo "========================================"
|
|
echo "SPRING_DATASOURCE_URL=${SPRING_DATASOURCE_URL}"
|
|
echo "SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME}"
|
|
echo "SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD}"
|
|
echo "JWT_EXPIRATION_MS=${JWT_EXPIRATION_MS}"
|
|
echo "JAVA_OPTS=${JAVA_OPTS:-not set}"
|
|
echo "OPENAI_API_KEY=${OPENAI_API_KEY:-not set}"
|
|
echo "========================================"
|
|
|
|
# ── Start all services via supervisord ───────────────────────────────────────
|
|
# Export unbuffered output for both Python and Java
|
|
export PYTHONUNBUFFERED=1
|
|
export JAVA_OPTS="${JAVA_OPTS} -Dfile.encoding=UTF-8 -Djava.awt.headless=true"
|
|
exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
|