Mercury/entrypoint.sh
Matthew L McPeak a202a06562
All checks were successful
ci / build-ui (push) Successful in 14s
ci / test (push) Successful in 3m13s
ci / publish (push) Successful in 2m55s
Inital Commit
2026-06-18 19:24:40 -04:00

37 lines
1.4 KiB
Bash

#!/bin/sh
set -e
PGDATA="${PGDATA:-/var/lib/postgresql/data}"
PGLOG="/var/log/postgresql/postgresql.log"
MINIO_DATA="${MINIO_VOLUMES:-/var/lib/minio/data}"
CDN_BUCKET="${CDN_BUCKET:-mercury}"
mkdir -p "$PGDATA" /var/log/postgresql "$MINIO_DATA"
chown postgres:postgres "$PGDATA" /var/log/postgresql
# Start MinIO in background
minio server "$MINIO_DATA" --console-address ":9001" > /var/log/minio.log 2>&1 &
# Wait for MinIO to accept connections
echo "Waiting for MinIO..."
until mc alias set local http://localhost:9000 "$MINIO_ROOT_USER" "$MINIO_ROOT_PASSWORD" > /dev/null 2>&1; do
sleep 1
done
# Create default bucket with anonymous read+write (MinIO is internal; no ports exposed)
mc mb --ignore-existing "local/${CDN_BUCKET}" > /dev/null 2>&1
mc anonymous set public "local/${CDN_BUCKET}" > /dev/null 2>&1
echo "MinIO ready — bucket: ${CDN_BUCKET} (http://localhost:9000/${CDN_BUCKET})"
# Initialise PostgreSQL on first start
if [ ! -f "$PGDATA/PG_VERSION" ]; then
su -s /bin/sh postgres -c "initdb -D $PGDATA"
su -s /bin/sh postgres -c "pg_ctl start -D $PGDATA -w -l $PGLOG"
su -s /bin/sh postgres -c "psql postgres -c \"CREATE USER mercury WITH PASSWORD 'mercury';\""
su -s /bin/sh postgres -c "psql postgres -c \"CREATE DATABASE mercury OWNER mercury;\""
su -s /bin/sh postgres -c "pg_ctl stop -D $PGDATA -w"
fi
su -s /bin/sh postgres -c "pg_ctl start -D $PGDATA -w -l $PGLOG"
exec /app/mercury