#!/usr/bin/env bash # SPDX-FileCopyrightText: 2026 Bart Broere # SPDX-License-Identifier: GPL-3.0-or-later # Runs PostgreSQL (through the stock postgres entrypoint), the peo bridge and # pgAdmin side by side. The container stops when PostgreSQL or the bridge exits; # pgAdmin is optional and its failure does not take the others down. set -euo pipefail if [ "${1:-}" != "postgres" ]; then exec docker-entrypoint.sh "$@" fi export PEO_PG_DATABASE="${PEO_PG_DATABASE:-${POSTGRES_DB:-${POSTGRES_USER:-postgres}}}" start_pgadmin() { local app=/opt/pgadmin/app local email="${PGADMIN_DEFAULT_EMAIL:-admin@example.com}" if [ ! -f /var/lib/pgadmin/pgadmin4.db ]; then # First start: create the login user and register the bundled PostgreSQL. cat > /var/lib/pgadmin/servers.json <&2 fi shutdown() { for pid in "$bridge_pid" $pgadmin_pid "$pg_pid"; do kill -TERM "$pid" 2>/dev/null || true done } trap shutdown TERM INT # Wait until PostgreSQL or the bridge exits, then stop everything. set +e wait -n "$pg_pid" "$bridge_pid" status=$? shutdown wait 2>/dev/null exit "$status"