#!/bin/bash # Fix PostgreSQL port binding - Remote execution script POSTGRES_PASSWORD="DC1qaz2wsx" echo "==========================================" echo " Reconfiguring PostgreSQL Container" echo "==========================================" echo "" echo "[1/4] Stopping old container..." docker stop postgres docker rm postgres echo "" echo "[2/4] Starting new container with external access..." docker run -d \ --name postgres \ --restart unless-stopped \ -e POSTGRES_PASSWORD="$POSTGRES_PASSWORD" \ -e POSTGRES_INITDB_ARGS="--encoding=UTF-8 --locale=en_US.UTF-8" \ -e TZ=Asia/Taipei \ -p 0.0.0.0:5432:5432 \ -v postgres-data:/var/lib/postgresql/data \ postgres:16 echo "" echo "[3/4] Waiting for PostgreSQL to be ready..." sleep 5 for i in {1..20}; do if docker exec postgres pg_isready -U postgres >/dev/null 2>&1; then echo " PostgreSQL is ready!" break fi echo " Waiting... ($i/20)" sleep 1 done echo "" echo "[4/4] Verifying configuration..." echo "" echo "Container status:" docker ps | grep postgres echo "" echo "Port binding:" docker port postgres echo "" echo "Database check:" docker exec postgres psql -U hr_user -d hr_portal -c "SELECT COUNT(*) as table_count FROM information_schema.tables WHERE table_schema='public' AND table_type='BASE TABLE';" echo "" echo "==========================================" echo " Configuration Complete!" echo "==========================================" echo "" echo "PostgreSQL is now accessible from 10.1.0.254:5432" echo ""