37 lines
1.4 KiB
Bash
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
|