45 lines
1.2 KiB
Bash
Executable File
45 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
if [[ -f local.env ]]; then
|
|
set -a
|
|
source local.env
|
|
set +a
|
|
fi
|
|
|
|
POSTGRES_CONTAINER="${POSTGRES_CONTAINER:-humainflow-postgres}"
|
|
POSTGRES_IMAGE="${POSTGRES_IMAGE:-postgres:17-alpine}"
|
|
POSTGRES_DB="${POSTGRES_DB:-mydb}"
|
|
POSTGRES_USER="${POSTGRES_USER:-${DB_USER:-lucio}}"
|
|
POSTGRES_PASSWORD="${POSTGRES_PASSWORD:-${DB_PASSWORD:-password}}"
|
|
|
|
if docker container inspect "$POSTGRES_CONTAINER" >/dev/null 2>&1; then
|
|
docker rm -f "$POSTGRES_CONTAINER" >/dev/null
|
|
fi
|
|
|
|
docker run \
|
|
--name "$POSTGRES_CONTAINER" \
|
|
--rm \
|
|
-e POSTGRES_DB="$POSTGRES_DB" \
|
|
-e POSTGRES_USER="$POSTGRES_USER" \
|
|
-e POSTGRES_PASSWORD="$POSTGRES_PASSWORD" \
|
|
-p 5432:5432 \
|
|
-d "$POSTGRES_IMAGE" >/dev/null
|
|
|
|
cleanup() {
|
|
docker stop "$POSTGRES_CONTAINER" >/dev/null 2>&1 || true
|
|
}
|
|
trap cleanup EXIT INT TERM
|
|
|
|
until docker exec "$POSTGRES_CONTAINER" pg_isready -U "$POSTGRES_USER" -d "$POSTGRES_DB" >/dev/null 2>&1; do
|
|
sleep 1
|
|
done
|
|
|
|
# Il database è usa-e-getta: crea lo schema direttamente dalle entity.
|
|
./mvnw spring-boot:run \
|
|
-Dspring-boot.run.jvmArguments="-Dddl-auto=create-drop"
|