#!/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