secajs/docker-entrypoint.sh

26 lines
773 B
Bash

#!/bin/bash
# Start PostgreSQL service
service postgresql start
# Wait for PostgreSQL to be ready
until su - postgres -c "pg_isready"; do
echo "Waiting for PostgreSQL to be ready..."
sleep 1
done
# Create the database and user if they don't exist
su - postgres -c "psql -tc \"SELECT 1 FROM pg_roles WHERE rolname = '$POSTGRES_USER';\"" | grep -q 1 || \
su - postgres -c "psql -c \"CREATE USER $POSTGRES_USER WITH ENCRYPTED PASSWORD '$POSTGRES_PASSWORD';\""
su - postgres -c "psql -tc \"SELECT 1 FROM pg_database WHERE datname = '$POSTGRES_DB';\"" | grep -q 1 || \
su - postgres -c "psql -c \"CREATE DATABASE $POSTGRES_DB OWNER $POSTGRES_USER;\""
# Start Caddy
caddy run --config /etc/caddy/Caddyfile &
# Start Express app
npm start
# Keep container running
wait